Zeilen einer Datei parsen

  • GM 7
  • Zeilen einer Datei parsen

    Hallo,
    ich möchte für mein Spiel eine reihe von Daten einlesen. Diese stehen in einer CSV-Datei:

    GML-Quellcode

    1. zaehler=0;while(!file_text_eof(datei)){ zeile=file_text_read_string(datei);
    2. laenge=string_length(zeile); show_message(zeile+"#"+string(laenge)); for(i=1;i=laenge;i+=1) { zeichen=string_copy(zeile,i,1); ergebnis+=zeichen; show_message(ergebnis); //eigentliche parser-operationen } file_text_readln(datei); zaehler+=zaehler;}

    Funktionieren soll das eigentlich so: Die Datei Zeile für Zeile einlesen und dann jede Zeile Zeichen für Zeichen überprüfen. Aber irgendwie spult er die for-Schleife nicht ab, sie scheint einfach übersprungen zu werden....
    (Die show_message - Aufrufe dienen lediglich der Kontrolle.)

    Ich hab ein Brett vorm Kopf - helft mir! ;(
    Danke.

    ps:Warum wird mein gml-Code hier immer so vermurkst dargestellt?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lando-KO ()

  • Versuchs mal mit:

    GML-Quellcode

    1. for(i=1;i<=laenge;i+=1)
    Du hast die Abbruchbedingung (i=laenge) hineingeschrieben. Die Bedingung muss aber erfüllt sein, um die Schleife zu durchlaufen.
    Btw. wenn der Code von dir stammt, solltest du deine Selbsteinschätzung überdenken ;)
  • Da der Thread jetzt so lang geworden ist: Hier das Endergebnis:

    GML-Quellcode

    1. datei=file_text_open_read("datei.csv");zaehler=0;ergebnis="";while(!file_text_eof(datei)){ zeile=file_text_read_string(datei); laenge=string_length(zeile); for(i=1;i<=laenge;i+=1) { zeichen=string_copy(zeile,i,1); if (zeichen==";")
    2. { array[zaehler,attrib]=ergebnis; attrib+=1; ergebnis=""; } else ergebnis+=zeichen; } global.stadt_daten[zaehler,attrib]=ergebnis; file_text_readln(datei); ergebnis=""; zaehler+=1; attrib=0;}file_text_close(datei);


    Das schöne ist, dass das Array genau die Dimensionen erhält, die auch in der CSV-Datei bestehen. Viel Spaß beim selber benutzen - CSV ist die Allzweckwaffe der Datenspeicherung.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lando-KO ()