WriteFile - ReadFile

Anfängerfragen zum Programmieren mit PureBasic.
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

WriteFile - ReadFile

Beitrag 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
 


Ich programmiere nur noch mit Linux.
Linux Mint 21.x
RehW
Beiträge: 15
Registriert: 03.03.2012 11:23

Re: WriteFile - ReadFile

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: WriteFile - ReadFile

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WriteFile - ReadFile

Beitrag von Kiffi »

@stevie1401:

Zusatzinfo:

'Open file for Output ...' entspricht einem CreateFile()

OpenFile() wäre 'Open file for Append ...'

Grüße ... Peter
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: WriteFile - ReadFile

Beitrag 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
  
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: WriteFile - ReadFile

Beitrag 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.
Zuletzt geändert von es_91 am 14.12.2014 20:07, insgesamt 2-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WriteFile - ReadFile

Beitrag 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
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: WriteFile - ReadFile

Beitrag 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 ?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WriteFile - ReadFile

Beitrag 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()
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: WriteFile - ReadFile

Beitrag 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?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Antworten