Ok, jetzt mal ganz langsam, bevor hier noch mehr Quatsch erzaehlt wird. Du solltest Dich dringend mit dem Konzept von Arrays (auf Deutsch auch Felder genannt) vertraut machen. Ausserdem waere es angebracht, die Fehlermeldungen, die der Compiler ausspuckt, auch zu lesen und versuchen sie zu verstehen, bzw. hier nachzufragen, was sie heissen.
So, nun kucken wir mal auf Deinen Code.
Code:
...
An dieser nicht ganz unwesentlichen Stelle wird wohl irgendwo die Deklaration des Arrays Data stehen. Array ist dabei das Stichwort.
Code:
convert_string(HLData,Data,MAX_DATA_LENGTH);
Hier wird das Array "Data" nun also gefuellt.
Code:
if(Data == 1)//Und genau hier kommen immer fehler.
Hier liegt ja auch der Fehler. Dieser Vergleich ist, wie wenn Du schreibst "wenn dieses Regal die Bibel ist". (Nicht ganz, aber vergiss mal eben die Spitzfindigkeiten). Was Du vergleichen musst, ist aber der _Inhalt_ des Regals, also etwas so: "Wenn das erste Buch in diesem Regal die Bibel ist".
Fuer Deinen Code saehe das dann so aus:
Code:
if (Data[0] == '1')
Code:
if(zahl == 1) /*Auch hier kommt wieder mal der fehler*/
Selber Fehler. Du willst wissen, ob in dem Array "zahl" die Zahl 1 steht, aber in Buchstaben. Wenn jetzt nur die Ziffern 1 bis 9 vorkommen koennen, dann geht hier wieder:
Code:
if ( zahl[0] == '1' )
Es ist aber folgendes zu beachten. Diese Abfrage ist nicht nur fuer die Zahl 1, sondern auch fuer 14 oder 123 oder 1024 wahr. Denn alle fangen mit '1' an. Um die ganze Zahl zu Vergleichen, musst Du also den gesamten String vergleichen (was hier dasselbe wie ein Array ist). Dazu gibt es wieder verschiedene Moeglichkeiten. Dazu sollte man wissen, dass im Computer 1 nicht gleich '1' ist. Es gibt im Rechner die Ziffer 1. Was Du hier hast, ist aber ein String. Das heisst, Du hast Buchstaben (Zeichen) da stehen, also das Zeichen '1'. Das ist nicht gleich der Zahl 1. (Das Zeichen '1' entspricht im ASCII Code der Zahl 49.
Du kannst jetzt entweder den String "zahl" mit einem anderen String vergleichen, oder den String "zahl" in eine Zahl umwandeln und diese dann mit einer anderen Zahl vergleichen.
Also entweder so:
Code:
if ( strcmp( zahl, "1" ) == 0 ) /*strcmp() gibt bei Gleichheit 0 zurueck*/
oder so:
Code:
new number = numtostr( zahl );
if ( number == 1 )
In Deinem besonderen Fall, kann man auch etwas machen, was schneller ist, weil man sich extra Funktionsaufrufe spart. Ein String endet immer mit der Zahl 0. Und zwar wirklich die Zahl 0, nicht das Zeichen fuer die Zahl 0, (was in ASCII wieder der Zahl 48 entspraeche). Das stellt man als Zeichen so dar: '^0'. Um zu pruefen, ob ein String "zahl" dem String "1" entspricht, kannst Du also kucken, ob am Anfang von dem String das Zeichen '1' steht und ob der String dann endet. Also ob dann eine 0 kommt. In Code sieht das dann so aus:
Code:
if ( zahl[0] == '1' && zahl[1] == '^0' )
So, wenn Du jetzt noch weisst, wo oben und unten ist, darfst Du weiter programmieren.