Thema: Delphi Fragen zu TFileStream

Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zweifel zu TFileStream

  Alt 6. Sep 2008, 18:15
HI,

als erstes mal würde ich dir Vorschlagen, deine Schlüssel in ein Array of Char zu laden. Das lässt sich mit der Funktion Read bewerkstelligen. Dann brauchst du eine Schleife, die eine Datei lesend und schreibend öffnet. Von dieser liest du ein Zeichen, geht das Zeichen zurück und überschreibst das Zeichen mit dem verschlüsselten Wert. Das sieht dann so aus:

Delphi-Quellcode:
procedure EncryptFile(XFile, KFile: String);
var
  fkey, fxfile: TFilestream;
  keys: array[0..524287] of Char; // deine Menge weniger 1
  i: Cardinal;
  buffer: Char;
begin
  fkey := TFileStream.Create(kfile, fmOpenRead);
  fkey.Read(keys, 524288); // nun wieder vollzählig
  fkey.Free; // wird nicht mehr benötigt, da im Speicher

  fxfile := TFileStream.Create(xFile, fmOpenReadWrite);
  for i := 1 to fxfile.Size do
  begin
    fxfile.Read(buffer, 1);
    fxfile.Position := fxFile.Position - 1;
    fxFile.Write(Chr(Ord(buffer) XOR Ord(keys[(i-1) mod 524287])), 1); // XOR
  end;
  fxfile.Free;
end;
Frei im Editor getippt. Kann Fehler enthalten.

Bernhard

EDIT: "ZWEIFEL" drückst du keine aus. Also kannst du dir auch gleich noch einen neuen Namen für das Thema suchen
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat