Seite 1 von 3
WriteFile - ReadFile
Verfasst: 05.12.2014 14:34
von stevie1401
leider verstehe ich die sehr ungewöhnliche PB-Syntax überhaupt nicht.
Kann mir das mal jemand in PB übersetzen?
Code: Alles auswählen
If Exist(file)
ff = FreeFile
Open file for Input As # ff
While Not EOF(# ff)
Line Input # ff, aString
Wend
Close # ff
EndIf
Auch das Schreiben in eine Datei bekomme ich nicht hin.
Kann mir jemand folgendes übersetzen?
Code: Alles auswählen
ff = FreeFile
Open file for Output As # ff
Print # ff, aString
Close # ff
Re: WriteFile - ReadFile
Verfasst: 05.12.2014 14:55
von RehW
Siehe Dir zum Lesen das Beispiel in der
Hilfedatei an. Ein Beispiel zum schreiben findest Du auch in der Hilfedatei unter
OpenFile.
Wenn das nicht reicht einfach melden.
Gruss RehW
Re: WriteFile - ReadFile
Verfasst: 05.12.2014 16:39
von ts-soft
Code: Alles auswählen
EnableExplicit
Define ff, file.s, text.s, format
If FileSize(file) >= 0
ff = ReadFile(#PB_Any, file) ; zum lesen, zum lesen und schreiben bitte OpenFile(...)
If ff
format = ReadStringFormat(ff)
While Not Eof(ff)
text + ReadString(ff, format)
Wend
CloseFile(ff)
EndIf
EndIf
; ---------------------------------------
ff = OpenFile(#PB_Any, file)
If ff
WriteStringFormat(ff, format)
WriteString(ff, text, format)
; ....
CloseFile(ff)
EndIf
Anpassungen bitte selber machen.
Gruß
Thomas
Re: WriteFile - ReadFile
Verfasst: 05.12.2014 17:02
von Kiffi
@stevie1401:
Zusatzinfo:
'Open file for Output ...' entspricht einem CreateFile()
OpenFile() wäre 'Open file for Append ...'
Grüße ... Peter
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 19:32
von stevie1401
Vielen Dank.
Leider verstehe ich das Read-Write überhaupt nicht. Ich kann es schlicht nicht nachvollziehen und erkenne leider keine Logik dahinter.
Kann mit bitte jemand das hier in PB übersetzen? Ich bekomme es wirklich nicht hin:
Code: Alles auswählen
ff=freefile
Open file for Binary As # ff
Print # ff, aString
Close # ff
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 20:02
von es_91
stevie1401 hat geschrieben:Kann mit bitte jemand das hier in PB übersetzen? Ich bekomme es wirklich nicht hin:
Code: Alles auswählen
ff=freefile
Open file for Binary As # ff
Print # ff, aString
Close # ff
Code: Alles auswählen
; um Kompatibilität mit EnableExplicit zu erhalten:
Define aString$
Define file$
Define ff
; /
ff = OpenFile (#PB_Any, file$)
WriteStringN (ff, aString$)
CloseFile (ff)
Ich meine, mich zu erinnern, dass freefile die niedrigste mögliche Nummer zurückgibt. In PureBasic müsstest Du alle Nummern ab #Null abfragen (mit
IsFile ()), um wirklich die niedrigste zu finden.
#PB_Any bei
OpenFile () gibt eine Speicheradresse zurück, die liegt irgendwo.
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 20:04
von Kiffi
Code: Alles auswählen
EnableExplicit
Define FF
FF = CreateFile(#PB_Any, "DeineDatei.txt")
If FF
WriteString(FF, "Hello World")
CloseFile(FF)
Else
Debug "'DeineDatei.txt' konnte nicht erstellt werden"
EndIf
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 20:27
von stevie1401
Sodele, einer schreibt WriteString, der andere WriteStringN, ich habe BEIDES getestet, aber die Daten werden allerdings NICHT sauber geschrieben.
Zur Erklärung.
Ich bekomme vom Server einen String, den ich als binary abspeichern muss.
Unter GFA-Basic habe ich obigen Code genommen, der problemlos funktioniert.
Mit PB wird der String NICHT sauber geschrieben, d.h. an bestimmten Stellen macht er ein Chr(13) oder chr(10) wo es NICHT hingehört und trennt so Zeilen.
Getestet unter Linux und Windows.
Gibt es keine echte Übersetzung für
"Open file for Binary As # ff ?
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 20:40
von Kiffi
Mit PB wird der String NICHT sauber geschrieben
ist es denn wirklich zu viel verlangt, mal ab und zu in die Hilfe zu schauen?
WriteString() vs.
WriteStringN()
Re: WriteFile - ReadFile
Verfasst: 14.12.2014 20:42
von stevie1401
Habe ich doch getan.
Nur funktioniert beides nicht.
Deshalb meine Frage noch einmal:
Gibt es eine Möglichkeit Daten als Binary zu schreiben?