WriteString() und Zeilenumbruch

Anfängerfragen zum Programmieren mit PureBasic.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

WriteString() und Zeilenumbruch

Beitrag von SebastianJu2 »

Ich habe beim Schreiben in eine Datei das Problem dass kein Zeilenumbruch eingefügt wird. Erst dachte ich WriteString() wird das selbst machen da ReadString() ja auch immer nur eine Zeile einliest.

Nachdem das nicht der Fall ist habe ich es so versucht:

Code: Alles auswählen

WriteString(WriteFileHandle, SourceFileContent$(x) + #LFCR$)
Aber das bringt auch nichts. Ohne CR das selbe.

Ich habe mir die Daten mal ausgeben lassen und das Array ist korrekt immer mit einer URL gefüllt. Es liegt also am Schreibbefehl.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WriteString() und Zeilenumbruch

Beitrag von Kiffi »

@SebastianJu2: WriteStringN() ist Dein Freund ;-)

Grüße ... Kiffi

P.S.: #CRLF$; und nicht #LFCR$
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: WriteString() und Zeilenumbruch

Beitrag von SebastianJu2 »

Das mit dem N werd ich mal probieren. Die Beschreibung klingt schon mal richtig. Danke...

#LFCR$ ist aber das was das Dropdownmenü vorschlägt im Editor... Deswegen hab ich das genommen...
Trotzdem seltsam dass das mit dem normalen Schreibbefehl nicht geht. Zeilenumbruch sind doch auch nur Zeichen die reingeschrieben werden. Aber offenbar entfernt der das wieder.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: WriteString() und Zeilenumbruch

Beitrag von DarkDragon »

SebastianJu2 hat geschrieben:Das mit dem N werd ich mal probieren. Die Beschreibung klingt schon mal richtig. Danke...

#LFCR$ ist aber das was das Dropdownmenü vorschlägt im Editor... Deswegen hab ich das genommen...
Trotzdem seltsam dass das mit dem normalen Schreibbefehl nicht geht. Zeilenumbruch sind doch auch nur Zeichen die reingeschrieben werden. Aber offenbar entfernt der das wieder.
Die Reihenfolge der Zeichen ist wichtig (CRLF) und die Zeichen sind abhängig vom Editor den man nutzt. Mit Wordpad wirst du wahrscheinlich den Zeilenumbruch sehen den du oben angegeben hast, mit Notepad/Editor nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: WriteString() und Zeilenumbruch

Beitrag von SebastianJu2 »

Ja ich weiß dass die Reihenfolge wichtig ist. Ich hatte auch schon Dateien die in Wordpad mit Zeilenumbruch aber im Editor ohne angezeigt wurden. Außerdem gibt es welche du nur LF haben. Das muss man dann erstmal wieder reparieren.
Wenn die korrekte Reihenfolge CRLF ist dann ist das wohl ein Fehler im PB-Editor...
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: WriteString() und Zeilenumbruch

Beitrag von DarkDragon »

SebastianJu2 hat geschrieben:Wenn die korrekte Reihenfolge CRLF ist dann ist das wohl ein Fehler im PB-Editor...
Nein, denn die Konstante existiert ja. Außerdem macht es druckertechnisch eigentlich keinen Unterschied, daher wird die Konstante vorhanden sein.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: WriteString() und Zeilenumbruch

Beitrag von SebastianJu2 »

Stimmt...

Code: Alles auswählen

MessageRequester("Info","+"+#CRLF$+"-"+#LFCR$+"+")
Beide Konstanten gibts und erzeugen einen Zeilenumbruch. WriteString() wird dann wohl einfach alle Zeilenumbrüche aus dem Text rauslöschen. Find ich nicht so toll wenn es sowas ungefragt macht aber ok...
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: WriteString() und Zeilenumbruch

Beitrag von NicTheQuick »

Nur nochmal zur Erinnerung.

CRLF ist der Standard-Zeilenumbruch unter Windows, LF der unter Linux und CR der unter Mac.
Öffnest du mit Windows also eine Datei, die nur LF oder nur CR hat, wirst du in Notepad keinen Zeilenumbruch sehen. Wordpad und alles höherwertige erkennt das normalerweise aber trotzdem richtig.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: WriteString() und Zeilenumbruch

Beitrag von SebastianJu2 »

Falsch herum darfs aber auch nicht sein. Sonst macht Wordpad zwei Umbrüche... :)
Antworten