End of Line Kodierung ändern

Alles rund um die Programmierung mit Qt
Antworten
Schwarzherz
Beiträge: 9
Registriert: 6. Mai 2006 14:04
Wohnort: Traunkirchen
Kontaktdaten:

End of Line Kodierung ändern

Beitrag von Schwarzherz »

Weiß jemand wie ich beim Speichern einer Datei die End of Line Kodierung umstellen kann? Also, dass ich zwischen Windows/Unix/Mac Format umstellen kann.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Also ich mache das immer manuell, aber wenn es da etwas einfacheres geben würde, bin ich immer gerne für eine Lösung zu haben.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Re: End of Line Kodierung ändern

Beitrag von patrik08 »

Schwarzherz hat geschrieben:Weiß jemand wie ich beim Speichern einer Datei die End of Line Kodierung umstellen kann? Also, dass ich zwischen Windows/Unix/Mac Format umstellen kann.
QString(QChar('\n') ist ab qt 4.1.3 super immer gleich auf mac e window
auf linux sicher auch wenn es mac auch kann die 2 sind ja fast identisch im sistem....
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Verstehe ich nicht. Das kann doch nicht die EndOfLine ändern? Das macht nur immer ein \n als EndOfLine, oder sehe ich das falsch?
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

EndOfline ist doch zeilen umbruch oder?

der richtige mac & window ist doch '\n\r'
carriage return oder wie er benannt wird... in beinem C++ buch 600 seiten ist er auf jedem fall nicht drinnen... als "EndOfline"

http://en.wikipedia.org/wiki/Carriage_return
In ASCII and unicode, the character code decimal 13 (or hexadecimal 0D) is defined to be carriage return.
Ich habe die info von da http://www.qtcentre.org/forum/showthread.php?t=2547
aufgegriffen .....

und QString(QChar('\n') kann ich mich vorstellen dass er auf jedem os richtig gehandhabt wirdt...
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ok, verstehe, wobei der nichts anderes macht, als replace mit einem QString.

Ich glaube, also zumindest ich suche, hier sollte es direkt gehen, also z.B:

file.endOfLine( Mac );
oder
file.endOfLine( Linux );

oder so. Wobei es das eben nicht gibt nach meinem Wissensstand.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Jetzt wird hier aber einiges durch einander gewürfelt. Der ganze Kram stammt noch aus Schreibmaschinenzeiten, als es 2 Sachen gab, Carriage Return und Linefeed. Ein Carriage Return bewegte nur den Schlitten wieder nach rechts und ein Linefeed drehte die Walze um eine Zeile weiter.

Beim Computer ist jetzt nur noch ein End of line nötig und da gibt es Unterschiede zwischen den Systemen. Unix/Linux usw. benutzen einen Linefeed '\n', Mac benutzt einen Carriage Return '\r' und Windows beides, wobei hier die Reihenfolge eingehalten werden muss '\r\n'.

Ich benutze fast nur '\n', wenn ich Dateien schreibe, da alle Systeme damit klar kommen, ausser natürlich Notepad von Windows :-)
Antworten