![]() |
[gelöst] binär lesen und schreiben
Hi Delphianer,
ich lese Informationen vom Rechner aus, z.B. die Seriennummer von Windows, verschlüssle diese mittels RC4 (Danke Luckie für das Demo) und möchte diesen verschlüsselten String in einer Datein speichern; Später möchte ich diese Datei auslesen und mit der Seriennummer wieder vergleichen; Worauf das hinausläuft, könnt ihr euch sicher vorstellen; folgendes Problem: Wieso sind die Strings nicht gleich? Zunächst mal mein Code:
Delphi-Quellcode:
Meiner Meinung nach wird der String nicht korrekt gespeichert;
procedure fWriteFile (psFileName,psContent:string);
var FileHandle : integer; begin if FileExists( psFileName ) then deleteFile (pchar(psFileName)); FileHandle := FileCreate(psFileName); FileWrite(FileHandle,psContent,length(psContent)); FileClose(FileHandle); end; function fReadFile (psFileName,psContent:string) : boolean; var FileHandle,nRead,i,FileLength : integer; Buffer: PChar; bOkay : boolean; begin bOkay := false; if FileExists( psFileName ) then begin FileHandle := FileOpen(psFileName, fmOpenRead); FileLength := FileSeek(FileHandle,0,2); FileSeek(FileHandle,0,0); Buffer := PChar(AllocMem(FileLength + 1)); nRead := FileRead (FileHandle,Buffer^,FileLength); FileClose(FileHandle); for i:=0 to nRead-1 do begin if Buffer[i] = psContent[i] then bOkay := true else begin bOkay := false; exit; end; end; end; result := bOkay; end; Laut meinem HexEditor stimmen die Bytes in der fReadFile-Funktion im Buffer[i] mit denen in der Datei überein, aber nicht mit dem eigendlichem verschlüsselten String; Verschlüsselt hin und her, das sollte doch beim Speichern, Lesen und Vergleichen kein Thema sein. Wo mache ich den Fehler beim speichern? Bin Dankbar für jede Hilfe. Gruß gmc |
Re: binär lesen und schreiben
Zeig doch mal ein Beispiel (Hex-Bytes in der Datei und im verschlüsselten String).
|
Re: binär lesen und schreiben
Moin gmc,
Zitat:
Du hast einfach aber der Adresse des Strings alles was danach im Speicher steht weggeschrieben. Probier's mal so:
Delphi-Quellcode:
FileWrite(....,psContent[1],...);
|
Re: binär lesen und schreiben
@Mephistopheles:
Clown gefrühstückt? |
Re: binär lesen und schreiben
Das funktoniert !!
Danke Chris!! Bin ich blöde?? Wieso funktioniert das? psContent[0] = Länge des Strings? psContent[1] = 1. Char?? Oder? selbst wenn ich am Offset beim Lesen gedreht habe ... konnte ich nix finden was gleich war *grübel* Nochmal DANKE! Gruß gmc |
Re: binär lesen und schreiben
Zitat:
![]() |
Re: binär lesen und schreiben
Zitat:
Komisch! Chris wußte mir zu helfen. Du wolltest mich nur lächerlich aussehen lassen. [edit] Danke für das Tutorial [/edit] |
Re: binär lesen und schreiben
Zitat:
Und dass Christian Seehase dir helfen konnte, war purer Zufall, dass er richtig geraten hat bzw. sich den Quellcode genauer angeguckt hat. Mephistopheles ist davon ausgegangen, dass du solch einen Anfängerfehler nicht machst und hat versucht den Grund wo anders zu suchen. Dass sein Posting dir nicht gleich geholfen hat, ist kein Grund so zu reagieren. Da dein Problem wohl gelöst ist, mache ich hier zu. Alles weitere per PN. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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-2025 by Thomas Breitkreuz