Substring findet nicht immer alles, warum?



  • Hallo

    Ich habe in einem Memo-Feld eine Logdatei geladen wo viele kleine Datenpakete nach folgendem Prinzip drin stehen:
    Zeit: xxx
    Name: xxx
    IP: xxx

    Manchmal stehen auch noch Daten dabei die ich nicht braucht (z.B.: ein Domainname: xxx)

    Die unnötigen Sachen filtere ich nach folgendem Prinzip raus:

    for(int c=0;c<memo->Lines->Count;c++)
     {
    
              if(memo->Lines->Strings[c].SubString(0,6)=="Domain")
              {
                Form1->memo->Lines->Delete(c);
              }
     }
    

    in dieser Schleife stehen auch noch anderen if-Abfragen drin, die andere Zeilen herausfiltern.

    Mein Problem ist nun folgendes:

    Es kommt vor, dass manche Zeilen wo am Anfang dieser Begriff drin ist nicht rausgefiltert/gelöscht werden obwohl es Substringtechnisch korrekt ist. Sämtliche anderen werden jedoch korrekt gelöscht.

    Gehe ich nun hin und mache eine weitere For-Schleife "auf" und schreibe dort die if-Abfrage mit dem Substring rein, so werden an dieser Stelle die Zeilen korrekt gelöscht.

    Ist das ein Bug vom Substring oder woran könnte das liegen?



  • Es liegt an einem nicht ausgereiften logischen Ablauf von dir... Siehe dazu auch diesen Thread:

    http://www.c-plusplus.net/forum/viewtopic.php?t=62521

    -junix



  • Super

    Vielen Dank

    auf die idee bin ich noch nicht gekommen.

    Ich danke dir


Anmelden zum Antworten