Binär zu String

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Binär zu String

Beitrag von a14xerus »

Hey Leute, wie Binärdaten (aus der registry (wie ich sie heraushole wei ich)) zu einem String konvertieren?
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

So ganz spontan würde mir da PeekS() einfallen.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

So ganz spontan würde mir da Bin() einfallen. Und das, obwohl ich diesen Befehl noch nie benutzt habe!! 8)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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

Beitrag von ts-soft »

Bin ist blödsinn
Base64 wäre das einfachste. Einfaches Peeks geht nicht, wegen der
Nullbytes. Oder in eine Art Hex umwandeln, wie der RegistryEditor es macht,
kommt ja drauf an wofür es gebraucht wird.
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

"binary data" im englischen ist was anderes als "binäre daten" im deutschen.

ersteres bezeichnet daten in form einer unformatierten zahlenreihe.
letzteres eine folge von nullen und einsen.

deswegen ist dein titel irreführend.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

also wie heißt es jetzt richtig?

also auf bin und peeks bi nich auch schon gekommen, so blöd bin cih net, als wenn ich noch nichts ausprobiert hätte

(Typ: Reg_Binary)
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

Beitrag von ts-soft »

#REG_BINARY ist kein String. Kann leerzeichen enthalten. Muß also
umgewandelt werden, wie ich bereits geschrieben habe. Mit PeekS gehts
nicht!

Byteweise auslesen, mit PeekB und umwandeln, oder den gesamten Speicher
mit Base64 in einen String wandeln.

Oder nimmste JHRegistry UserLib, die kann das.
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
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Code: Alles auswählen

Debug "Value: " + JHRegGetValue(#HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\DirectX\", "InstalledVersion")
Debug "Binar" + Str(JHRegGetBinary(#HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\DirectX\", "InstalledVersion"))
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

Also ich habe da einen String drin stehen für die Version. Weiß nicht ob es
bei XP so anders ist:

Code: Alles auswählen

Debug JHRegGetString(#HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\DirectX\", "Version")
Im übrigen gibt die Funktion JHRegGetBinary() "nur" eine Speicheradresse
zurück, aber das steht in der zugehörigen Hilfe drin. :D

Gruß Jens
Zuletzt geändert von sharkpeter am 07.10.2006 17:54, insgesamt 1-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Code: Alles auswählen

Debug JHRegGetString(#HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\DirectX\", "Version")
Bringt bei mir :
4.09.00.0904

(directX 9.0c)

und wenn ich nach installedversion debugge komtm garnichts ( XP Prof SP2 und eben DX9.0c)
Antworten