crlf splitten bitte um Erklärung
-
Hi Leute,
ich habe hier einen Code gefunden den ich nicht so ganz verstehe.
Im Debugmodus funktioniert er, im Release leider nicht.
Der Code zerschnippselt mir Zeilen anhand eines "\r\n" und zwar in super Kurzform. Ich würde den Code gerne verstehen kann mir das jemand erklären?
Wenn ich das machen würde würde es bestimmt einige Zeilen mehr sein.char *curptr, *endptr; char crlf[2]; strcpy(crlf,"\r\n"); //ptrlist ist ebenfalls ein char pointer curptr=ptrlist; // Solange er einen Substring findet?!? for (endptr = strstr(curptr,crlf); endptr!=NULL; endptr = strstr(curptr,crlf)) { // Was macht denn diese Zeile? *endptr = '\0'; // Jetzt habe ich meine Zeile (aber müsste curptr nicht noch alle Zeilen halten? MessageBox(curptr); // Verstehe ich auch nicht (endptr hält die position des \r\n) // Bedeutet das wenn z.B. ptrlist die Zeilen "abcdef\r\nhijklm" enthält beim ersten Durchlauf in endptr "\r\nnhijklm" stehen würde? + 2 wäre das dann "nhijklm". Bedeutet also wenn das ganez 3 zeilig wäre würde im endptr im ersten Durchlauf alles ab dem ersten \r\n drin stehen? curptr=endptr + strlen(crlf); }
Frägt sich nur warums im release nicht funktioniert.
Hat jemand eine Idee?
Danke!
-
wenn du in crlf 2 zeichen mit strcpy() speichern willst, muss dein array 3Byte statt 2Byte gross sein, denn strcpy() hängt noch n '\0' dran ; - )
-
Hi funz super! Danke!
Dachte immer das man einen char mit 0 abschließt, werds mir merken
und jetzt immer '\0' verwenden.
Danke!