Ich lese per QTextStream aus einer Textdatei per readLine Zeilen ein und bearbeite diese. Unter Windows ist das kein Problem. Nun ist die Macintosh-Version an der Reihe. Hier ist das EOL-Zeichen ein '\r'. Qt scheint das als EOF-Zeichen nicht zu erkennen. Stattdessen wird die ganze Datei in einem Zug in den QString geschrieben. Erschwerend kommt hinzu, dass das ursprüngliche EOL-Zeichen dabei vernichtet wird. Man kan also auch nachher nicht mehr splitten.
ja, das weiss ich. Leider erzeugen meine Kollegen nach wie vor Dateien mit einem '\r' als EOL. Das macht Excel nach wie vor automatisch, wenn man beim Abspeichern "Text, tab getrennt" nimmt. Direkt darunter kann man "Text, DOS Format" auswählen. Damit geht es dann wie gewünscht.
readAll() geht nicht. Die Dateien können leicht mal 30 MB groß werden. Außerdem (wie oben geschrieben) wird ja gerade das '\r' gelöscht. Es steht also nicht im mit readAll() erzeugten String für split() zur Verfügung :-(
Trotzdem vielen Dank für die Antwort. War hilfreich.
readAll() liefert ein QByteArray, kein String...! Wenn du die Datei im Binary-Mode öffnest (also ohne das "QIODevice::Text" Flag), fehlen da garantiert keine Zeichen