Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)