Re: Stringvergleich Kategorie: Programmierung (von KlaRa - 7.04.2002 18:03) | |
Als Antwort auf Stringvergleich von michael-g - 7.04.2002 14:31
| |
> Hallo ! > Ich suche eine Möglichkeit zwei Strings mit einer Länge von 16 Zeichen miteinander zu vergleichen.(Inhalt nicht die Länge). > Sind beide Inhalte ungleich, so soll eine bestimmte Funktion ausgelöst werden. > Wer kann mir helfen ? > > Michael Ich hoffe, es hilft. //******************************************************************* // Lib: MyStr.c2 // // function Compare(byte string1[], byte string2[]) returns byte // Getchar ( byte s[], int position ) returns byte // Str2Int(byte Wert[]) returns int // // /******************************************************************** Vom "Das C-Control - 2 - Forum" Geschrieben von Reiner am 24. Dezember 2000 14:39:06: Funktion zum Vergleichen zweier Stringvariablen -> gibt 0 zurück wenn strings ungleich -> gibt 255 zurück wenn strings gleich // Beispiel thread main { string s1; string s2; byte x; s1 = "Halli"; s2 = "Hallo"; x = compare (s1,s2); } -------------------------------------- Klaus Rawski, 09. Oktober 2001, Funktion leicht verbessert 14. Oktober 2001, Vergleich auf Excat und Str2 geht in Str1 auf. Begrenzung des Vergleichs wenn Str1 zu Ende ist. ********************************************************************/ function Compare(byte string1[], byte string2[]) returns byte { byte i; byte RetCode; byte b1; byte b2; RetCode = 255; // Exacter Vergleich OK for i = 0 ... 29 { b1 = string1[i]; b2 = string2[i]; if string1[i] == 0 and string2[i] == 0 { break; } if string1[i] == 0 { RetCode = 253; // String 1 geht in String 2 auf break; } if string2[i] == 0 { RetCode = 254; // String 2 geht in String 1 auf break; } if string1[i] != string2[i] { RetCode = 0; // Keine �bereinstimmung break; } } return RetCode; } /******************************************************************** strx.c2 C-Control II User Lib sample release : 2000/10/17 author : Markus Zander requires : contents : additional string routine with byte-array parameter ********************************************************************/ //-------------------------------------------------------- function Getchar ( byte s[], int position ) returns byte //-------------------------------------------------------- { return s[position]; } //------------------------------------------ // Es werden Strings mit 1-5 Ziffern in ein // Integerwert gewandelt. // // Wertebereich: 0 ... 32767 // // Beispiele: Str2Int("5") // Str2Int("055") // Str2Int("2255") // // Bei Fehler wird -1 zurückgegeben. //------------------------------------------ // Klaus Rawski, 28.12.2001 //------------------------------------------ function Str2Int(string cWert) returns int { int i; int iRet; int iLen; int iFaktor; byte bChar; iRet = 0; iFaktor = 1; iLen = str.length(cWert) - 1; if iLen >= 0 { for i = iLen ... >= 0 step -1 { bChar = Getchar(cWert, i); if bChar >= 48 and bChar <= 57 { iRet = iRet + (bChar - 48) * iFaktor; iFaktor = iFaktor * 10; } else { iRet = -1; break; } } } else { iRet = -1; } return iRet; } | |
Antwort schreiben Antworten: Re: Stringvergleich (von KlaRa - 7.04.2002 18:06) Re: Stringvergleich (von michael-g - 8.04.2002 0:30) |