Hexstring in Hexzahl umwandeln

Anfängerfragen zum Programmieren mit PureBasic.
Peloka
Beiträge: 34
Registriert: 16.01.2005 11:28

Hexstring in Hexzahl umwandeln

Beitrag von Peloka »

Wie kann man einen Hexstring unter PB3.94 sinnvoll in eine Hexzahl umwandeln ?

zB: H$ = "FFEF7A2F"
Ergebnis sollte so aussehen: h = $FFEF7A2F
bzw. h = 4293884463

Hat da jemand eine bessere Lösung als den Hexstring zu zerlegen und Zeichenweise umzuwandeln?
Ein Bit ist die kleinste Software-einheit, ein falsches Bit macht aus Software Bugware...
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

SUUUUUUUUUUCHFUNKTIOOOOOOOOOOOOOON!!!!!!!!

Result$ = http://www.purebasic.fr/german/viewtopi ... ht=hex2dec
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gute frage.

ich such mir grad nen wolf in der Help...

gibts echt keine native funktion zur umwandlung?

man kann sich ne Proc schreiben, aber warum gibts keine funktion dafür?

oder find ich se nur grad nich...

EDIT
ja ok, AND, du hast mit der forensuche durchaus recht... aber... warum gibbet das noch nich nativ?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wenn ich das noch richtig in Erinnerung habe von den ganzen Threads, die zu diesem Thema hier kursieren, dann "ist das halt so".

PB liefert eben nur Hex(). Im Prinzip müsste man Fred oder zumindest Andre (aber nicht mich :wink: ) fragen... Will damit sagen, dass ich bisher von niemanden einen einleuchtenden grund gehört habe, warum es das nicht gibt. Diese Situation ist genau dieselbe wie "Warum gibt's keine PNG-Transparenz?" oder "Warum kein GIF in PB?". Verstehst du, was ich sgaen will?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja verstehe ich.

wobei die frage "warum gibt es keine boole'sche ausdrücke" eher treffend wäre,
denn es gibt keine PNG-Alpha-Kanal-Transparenz, weil es in DX7 nicht implementiert war,
man bräuchte also das DX9-plugin dafür... ;)


...und ich bin jetzt zu faul, nen Hex_to_Val zu schreiben
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Boole'sche Ausdrücke gibt's doch, oder? Die lassen sich sogar in Variablen speichern:

Code: Alles auswählen

wahr=1 And 1
falsch=1 Xor Not 0
usw...

Oder verstehe ich etwas falsch?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Peloka
Beiträge: 34
Registriert: 16.01.2005 11:28

Beitrag von Peloka »

Ja hab grad mal einige interessante Lösungen getestet
so ganz überzeugt haben die mich nicht. Aber es geht dann wohl nicht anders.
Ein Bit ist die kleinste Software-einheit, ein falsches Bit macht aus Software Bugware...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Oder verstehe ich etwas falsch?

jup

Code: Alles auswählen

x = x + (x<800) - 800*(x>=800)
das is die verwendung zweier boole'scher ausdrücke.

ein boole'scher ausdruck ist ein vergleich in einer klammer,
der im falle von #True als 1 bzw. -1,
im falle von #False als 0 in die rechnung eingeht.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

>ein boole'scher ausdruck ist ein vergleich in einer klammer,
>der im falle von #True als 1 bzw. -1,
>im falle von #False als 0 in die rechnung eingeht.
Ah, jetzt verstehe ich! Aber das gibt es doch schon! du miusst nur ein "And 1" hintersetzen:

Code: Alles auswählen

a=1+(1 And 1)
Debug a
Das ergibt 2, den 1 And 1 ergibt #True (oder auch 1).
Auch das hier gibt es:

Code: Alles auswählen

a=1+(10>5 And 1)
Debug a
Dein Beisiel müsste so lauten:

Code: Alles auswählen

x = x + (x<800 And 1) - 800*(x>=800 And 1)
Debug x
[/b]Wobei x vorher nicht initalisiert ist, also wirst du vorher x irgendetas zuweisen müssen!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Peloka

sorry, muss man wohl selber coden

kommste damit klar, oder magste unterstützung?



@And

ich weiß, aber das ist ein workaround, keine lösung.
in den meisten Programmiersprachen ist das eine selbstverständlichkeit,
nur in PB nicht. ich habs auch schon mal im englischen forum nachgefragt,
und bekam ne menge dumme antworten. deshalb bin ich auch nicht so oft dort....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten