Es wird kein Byte aus der Datei gelesen.

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Es wird kein Byte aus der Datei gelesen.

Beitrag von funkheld »

Hallo, guten Tag.
Es wird damit kein Byte aus der Binärdatei gelesen:
declare wert.c

wert=ReadByte(0)
PrintN(Str(wert))

Es wird manchmal 65000 usw ausgeprintet.

Woran liegt das?

Danke.
Gruss
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Es wird kein Byte aus der Datei gelesen.

Beitrag von STARGÅTE »

Wenn du ein Byte (also -128 bis 127) lesen und speichern willst, musst du auch "wert" als Byte definieren und nicht als "c" also Character.

In deinem Fall wird das Byte negativ sein, und da du in Unicode kompiliert hast, wird diese Negative Zahl als positives Unicode-Zeichen interpretiert.

Im übrigen heißt es:
Define Wert.b
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Es wird kein Byte aus der Datei gelesen.

Beitrag von Derren »

Code: Alles auswählen

Define wert.b
wert=ReadByte(0)
PrintN(StrU(wert, #PB_Ascii))

;For a = -128 To 127
;	var = a
;	Debug StrU(var, #PB_Ascii)
;Next 
Signatur und so
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Es wird kein Byte aus der Datei gelesen.

Beitrag von funkheld »

Jup, danke.
Es soll von 0-255 gehen.

Ich habe mich verschrieben es soll heißen : Global wert.c

Danke.
Gruss
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
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: Es wird kein Byte aus der Datei gelesen.

Beitrag von NicTheQuick »

Dann kannst du auch 'ReadAscii()' nehmen und deine Variable als Ascii (.a) deklarieren. Dann brauchst du auch kein 'StrU()', sondern ein einfaches 'Str()' reicht. Dann kommt es auch zu keinen Verwirrungen, wenn du später mit der Zahl rechnen willst, denn ein Byte in PB ist vorzeichenbehaftet und geht von -128 bis 127. 'StrU()' zeigt es dann nur anders an.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Es wird kein Byte aus der Datei gelesen.

Beitrag von funkheld »

Jup danke.
Mit byte.a klappt es wunderbar.

Gruss
Antworten