Habe mal eine vielleicht dumme Frage.
Ich lese aus einer Datei eine einfache Ganzzahl aus :
Datensatz.d=ReadAsciiCharacter(1) + 256 * ReadAsciiCharacter(1)
Wie muss der Syntax heißen zum speichern in Purebasic ?
einfache Ganzzahl
einfache Ganzzahl
Zuletzt geändert von Fordey_ra am 11.04.2014 09:41, insgesamt 1-mal geändert.
Re: einfache Glanzzahl
ähh... ich denke mal WriteAsciiCharacter(). Oder wo soll diese genau gespeichert werden?
Bin auch ein wenig verwirrt, warum du deine Variable als Double deklariert hast, wenn du Integer verarbeiten möchtest.
Ist das bewusst gewählt worden?
gruß,
SBond
Bin auch ein wenig verwirrt, warum du deine Variable als Double deklariert hast, wenn du Integer verarbeiten möchtest.
Ist das bewusst gewählt worden?
gruß,
SBond
Zuletzt geändert von SBond am 10.04.2014 23:59, insgesamt 1-mal geändert.
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e


- 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: einfache Glanzzahl
Glanzzahl?
Danke für den Lacher.
Davon abgesehen kannst du auch gleich 'ReadWord(1)' schreiben anstatt das ganze mit zweimal 'ReadAsciiCharacter(1)' zu machen. Bei deiner Version weiß ich auch nicht genau welches 'ReadAsciiCharacter(1)' Purebasic zuerst ausführt. Falls zuerst das hintere ausgeführt wird und dann erst das vordere, kann das zu komischen Fehlern führen.

Danke für den Lacher.

Davon abgesehen kannst du auch gleich 'ReadWord(1)' schreiben anstatt das ganze mit zweimal 'ReadAsciiCharacter(1)' zu machen. Bei deiner Version weiß ich auch nicht genau welches 'ReadAsciiCharacter(1)' Purebasic zuerst ausführt. Falls zuerst das hintere ausgeführt wird und dann erst das vordere, kann das zu komischen Fehlern führen.
Re: einfache Ganzzahl
Sorry war schon spät, schon geändert.
Also das Auslesen klappt allerdings prima mit dieser Befehlsfolge.
Ich muss allerdings so wieder speichern weil noch andere Programme auf die Datei zugreifen.
Bitte deshalb um Info, wie ich das mit z.B. WriteAsciiCharacter mache ?
Also das Auslesen klappt allerdings prima mit dieser Befehlsfolge.
Ich muss allerdings so wieder speichern weil noch andere Programme auf die Datei zugreifen.
Bitte deshalb um Info, wie ich das mit z.B. WriteAsciiCharacter mache ?
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: einfache Ganzzahl
Speichern in die gleiche Datei?
http://www.purebasic.com/documentation/ ... acter.html
Ansonsten vorher ein Openfile... ,wenn eine andere Datei vorhanden ist, sonst
mit createfile eine neue Datei erstellen, wobei für #File ein anderer Wert als deine 1 angegeben werden
muss (z.B 2). Dann Result = WriteAsciiCharacter(2, Datensatz) und dann closefile.
http://www.purebasic.com/documentation/ ... acter.html
Ansonsten vorher ein Openfile... ,wenn eine andere Datei vorhanden ist, sonst
mit createfile eine neue Datei erstellen, wobei für #File ein anderer Wert als deine 1 angegeben werden
muss (z.B 2). Dann Result = WriteAsciiCharacter(2, Datensatz) und dann closefile.
Re: einfache Ganzzahl
oder auf:
ausweichen. Finde ich persönlich schöner, aber deine Ausführungen solltest du vielleicht noch etwas verständlicher machen.
Code: Alles auswählen
file = ReadFile(-1, FileName$)
If IsFile(file)
*buffer = AllocateMemory(Lof(file))
ReadData(file, *buffer, Lof(file))
CloseFile(file)
datensatz.d = PeekA(*buffer) + PeekA(*buffer+1)<<8 ; ?! double ?!
FreeMemory(*buffer)
EndIf
file = OpenFile(-1, FileName$)
If IsFile(file)
*buffer = AllocateMemory(Lof(file))
PokeW(*buffer, datensatz)
WriteData(file, *buffer)
FreeMemory(*buffer)
CloseFile(file)
EndIf