Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mit WriteBinaryData (https://www.delphipraxis.net/76839-probleme-mit-writebinarydata.html)

merlin2004 11. Sep 2006 00:25


Probleme mit WriteBinaryData
 
Ich hab hier einen REG_BINARY Wert der etwas seltsam aufgebaut ist:

02 00 4C 6F 6B 61 6C 65 73 20 4E 65 74 7A 77 65 72 6B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 B2 A8 C0 00 FF FF FF

Einzelne Werte:
3-18 = String "Lokales Netzwerk"
19-34 = Platzhalter
37-40 = IP Adresse (0 178 168 192)
41-44 = Subnetmaske (0 255 255 255)

Den kompletten String habe ich bereits zerlegt in 3 Werte: Bezeichnung, IP Adresse, Subnetmaske.
Seltsamerweise ist die IP Adresse und die Subnetmaske gedreht eingetragen. Die Bezeichnung aber nicht.
Die Werte von IP Adresse und Subnetmaske, sowie der Bezeichnung sollen geändert und mit WriteBinaryData zurückgeschrieben werden.
Ausgelesen und zerlegt habe ich das Ganze wie gesagt schon. Aber ich hänge beim zurückschreiben.

Ich habe Ein Stringrid mit den geänderten Werten und will diese nun zurückschreiben - hab aber keinen Plan wie ich da ran gehen muss.

Kann mir jemand unter die Arme greifen?

Danke

SirThornberry 11. Sep 2006 01:09

Re: Probleme mit WriteBinaryData
 
Die Werte stehen gedreht weil sie als Integer/Cardinal geschrieben werden und auch gedreht im speicher stehen. Wo liegt das Problem beim zurück schreiben? Eigentlich funktioniert es genau umgekehrt zum lesen. Wie liest du das ganze bisher?

merlin2004 11. Sep 2006 13:37

Re: Probleme mit WriteBinaryData
 
Zitat:

Zitat von SirThornberry
Die Werte stehen gedreht weil sie als Integer/Cardinal geschrieben werden und auch gedreht im speicher stehen. Wo liegt das Problem beim zurück schreiben? Eigentlich funktioniert es genau umgekehrt zum lesen. Wie liest du das ganze bisher?

Das ist genau das Problem... ich hab keinen Plan...
Ich denke ich muss ein byte array (buffer für writebinarydata) definieren aber wie bekomme ich die Daten dort vernünftig rein? Ich hab einen String (Bezeichnung) und dann noch 2 TStringDynArrays (IP Adresse und SubNetmaske). Ich setz die arrays mit einer explode function entsprechend zusammen, da ich ja die Punkte zwischen den einzelnen Octets wegbekommen muss. Aber ich hänge gerade echt am Zusammenbauen des buffers für writebinarydata :-(

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz