einfache Ganzzahl

Anfängerfragen zum Programmieren mit PureBasic.
Fordey_ra
Beiträge: 71
Registriert: 17.08.2010 22:30

einfache Ganzzahl

Beitrag von Fordey_ra »

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 ?
Zuletzt geändert von Fordey_ra am 11.04.2014 09:41, insgesamt 1-mal geändert.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: einfache Glanzzahl

Beitrag von SBond »

ä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
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

:D
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: einfache Glanzzahl

Beitrag von NicTheQuick »

Glanzzahl? :lol:
Danke für den Lacher. :wink:

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.
Fordey_ra
Beiträge: 71
Registriert: 17.08.2010 22:30

Re: einfache Ganzzahl

Beitrag von Fordey_ra »

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 ?
Benutzeravatar
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

Beitrag von Falko »

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.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
_sivizius
Beiträge: 98
Registriert: 23.10.2013 15:21

Re: einfache Ganzzahl

Beitrag von _sivizius »

oder auf:

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
ausweichen. Finde ich persönlich schöner, aber deine Ausführungen solltest du vielleicht noch etwas verständlicher machen.
Antworten