• Es ist halt eine klassische Alina-Aufgabenstellung:
    Man erhält eine bizarr anmutende Aufgabenstellung wo man sich fragt: Wo in welchem Zusammenhang taucht so ein Konstrukt auf und warum genau soll die Fragestellung die Lösung zu irgendeinem Problem sein?

    Das eigentliche Krux: Niemand - bis auf Alina - weiß um die Hintergründe zur Fragestellung.
    Keiner kennt die Ausgangslage, was für Daten das sind, wo sie herkommen und was für ein tatsächliches Problem gelöst werden soll - nichts.
    Auch auf Nachfrage verbleibt es auf dieser Ebene.

    Da alle hier dennoch Spaß am Tüfteln haben, machen wir uns dennoch fleißig daran die "Aufgabenstellung" mit Lösungswegen zu bedenken.
    Ich bin mir aber sicher, dass wenn wir die jeweils tatsächlichen Hintergründe mal erfahren würden dann kämen wir auf was völlig anderes (mutmaßlich viel besseres) hinaus.

    So hingegen trifft jeder seine Mutmaßung um eine Lösung für etwas zu präsentieren, was wohl bereits im Ansatz ganz anders angegangen werden könnte.

    Wir wissen fast nichts und müssen daher primär auf Mutmaßungen zurückgreifen. Ich mache dies mal exemplarisch:

    • Aufgabe: Anzahl der Zeilen zählen, welche 192 Zeichen lang sind
    • Alle Zeilen sind 192 Zeichen lang, nur die letzte Zeile kann weniger Zeichen enthalten
    • Als Zeilenumbruch wird @CRLF verwendet
    • @CRLF wird auch an die letzte Zeile angehangen, mindestens wenn sie 192 Zeichen lang ist
    • Alle verwendetenZeichen werden als 1 Byte-kodiert (also kein ä in UTF-8 oder sowas)
    • Es gibt kein BOM

    Wenn man diese Mutmaßungen aufstellt, dann wäre die kürzeste und weitaus schnellste Methode diese: $iCount = Floor(FileGetSize("test.txt") / 194).
    Aber es kann auch genauso völlig am Thema vorbeigehen.
    Das schadet im Grunde nicht, da wir alle damit meist viel Spaß haben beim gegenseitig Lösungen um die Ohren hauen.
    Aber tatsächlich ist es dann doch ziemlich unbefriedigend derart im Nebel zu stochern und zu wissen, dass man für das eigentliche Problem wohl eine weitaus bessere Herangehensweise entwickeln könnte, wenn man das eigentliche Problem denn kennen würde.

  • Ich habe eine Textdatei in der sind pro Zeile 192 Zeichen gesetzt, nur die letzte, die kann 192 oder weniger Zeilen lang sein.

    Wie zähle ich die Zeilen in einer Textdatei, die 192 Zeichen lang sind?

    $_zeilen = verwendete Zeilen der Länge 192

    Moin,

    das ist für mich eine durchaus klare Aufgabenstellung. Die Beschreibung lautet:

    • Textdatei:
      Es gibt Zeilenumbrüche. Und weil AutoIt auf einem Windows-System läuft, ist das mit sehr großer Wahrscheinlichkeit @CRLF. Im Zweifel kann man fragen.
    • ... pro Zeile 192 Zeichen, nur die letze kann
    • ... 192 oder weniger Zeichen lang sein

    Für diese Datei soll gezählt werden, wir viele Zeilen mit 192 Zeichen sie enthält.

    Ausgehend von dieser Beschreibung kommt man sehr schnell auf die Lösung mit FileReadToArray(). Das mag nicht die 'performanteste' Lösung sein, ist aber simpel und zuverlässig.

    Bleibt die Frage: Vertrauen wir blind darauf, dass der Dateiinhalt immer der obigen Beschreibung entspricht?

    • Wenn ja, nimmt man @extended als Zeilenzahl und zieht 1 ab, wenn die letzte Zeile kürzer als 192 Zeichen ist.
    • Wenn nein, prüft man zuerst alle Zeilen bis auf die letzte auf die korrekte Zeichenzahl. Sollte eine der Zeilen mehr oder weniger als 192 Zeichen haben, wäre das für mich ein Grund für einen Abbruch mit Fehlermeldung. Ansonsten ist das Ergebnis wie im 'Wenn ja'-Zweig.

    Nur wenn das letzte Bisschen Performanz herausgekitzelt werden muss, muss man weitere Fragen stellen.

    P.S.: Während meiner Berufstätikeit als Programmierer musste ich sehr häufig sehr ungenaue 'Programmieraufträge' umsetzen. Vielleicht hat das meine Leidensfähigkeit in dieser Beziehung gestärkt.

  • Nur wenn das letzte Bisschen Performanz herausgekitzelt werden muss, muss man weitere Fragen stellen.

    Wenn man das Grundproblem adäquat lösen möchte muss man weitere Fragen stellen.
    Die Frage ist doch: WOFÜR muss man die Anzahl dieser Zeilen zählen?
    Wenn man das weiß kann man sich evtl. die ganze Zählerei komplett sparen.
    Wir doktorn immer an Nebenkriegsschauplätzen rum die in den allermeisten Fällen komplett vermieden werden können, wenn man stattdessen das Grundproblem sinnvoll angeht.
    Daher stelle ich IMMER diese Nachfragen.