![]() |
AW: Variablentypen bei ord() erzeugen Fehler
Delphi-Quellcode:
Als Lernprojekt würde ich Dir empfehlen meine Methode in einen Filestream umzuwandeln, das ist nicht all zu schwer und hat eine Steile Lernkurve.
procedure CryptStringToFile(const InputString: string; const Modifier: Byte; const Filename: String);
var s: string; // <<-- diese Zeile löschen, überbleibsel von all-in-one version Mein example ist nur QuickAndDirty, bei längeren Texten auch arg langsam da alles byteweise passiert und nicht als ein block. Später kannst Du Dich dann mit XOR befassen, das wäre am einfachsten umzusetzen, ein sample Stand bereits hier im Thread. Bei meiner Variante ist es halt wichtig das nach Möglichkeit nur Text als Input reinkommt, kann ruhig multiline sein. Es gibt noch null Fehler kontrolle, ob zum Beispiel der Modifier Part die 255 überschreitet, deshalb keine zu großen wählen. Für normalen ASCII (0..127) als Input ist 128 der maximale Modifier Faktor. Weitere Kontrollen: Ob eine Datei geöffnet/geschrieben/gelesen werden konnte etc.... |
AW: Variablentypen bei ord() erzeugen Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
Eine letzte frage warum funktioniert das bitte jetzt nicht mehr?
LG Noah |
AW: Variablentypen bei ord() erzeugen Fehler
writeln(f,.....
|
AW: Variablentypen bei ord() erzeugen Fehler
Zitat:
LG Noah |
AW: Variablentypen bei ord() erzeugen Fehler
writeln(f,.....
hatte zu spät gelesen, bin müde :stupid: |
AW: Variablentypen bei ord() erzeugen Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
najaaa...da geht irgendwas nicht :(
LG Noah |
AW: Variablentypen bei ord() erzeugen Fehler
Kopiere Deine Methode hier als Delphi-Code rein, ich muss mehr sehen, vor allem im oberen deklarations Bereich der hier fehlt.
|
AW: Variablentypen bei ord() erzeugen Fehler
Delphi-Quellcode:
unit Unit1;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure FormActivate(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; WorkDir: String; filename : string; Verschluesselt:TextFile; dateistring,output:String; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormActivate(Sender: TObject); begin //Programm duplizieren //Pfad des Programms herausfinden //WorkDir:= ParamStr(0);// aktuelles Arbeitsverzeichnis auslesen //Programm kopieren //copyfile(WorkDir,'C:\Users\Noah\Desktop\projekt1.exe'); end; //String aus einer Datei laden Funktion function LoadStringFromFile(sInFile: String; var sFileString: String): Boolean; var FileStream: TFileStream; begin Result := False; if not FileExists(sInFile) then Exit; FileStream := TFileStream.Create(sInFile, fmOpenRead); try if FileStream.Size <> 0 then begin SetLength(sFileString, FileStream.Size); FileStream.Read(sFileString[1], FileStream.Size); Result := True; end; finally FileStream.Free end; end; //Funktion Ende //Funktion Verschlüsselung procedure CryptStringToFile(const InputString: string; const Modifier: Byte; const Filename: String); var i: Integer; b: Byte; f: file of Byte; begin AssignFile(F, Filename); Rewrite(f); for i := 1 to Length(InputString) do begin b := Ord(InputString[i]) + Modifier; write(f, b); end; CloseFile(F); end; //Funktion Entschlüsselung function CryptFileToString(const Filename: string; const Modifier: Byte): String; var b: Byte; f: file of Byte; begin AssignFile(F, Filename); Reset(F); Result := ''; while not Eof(F) do begin Read(f, b); Result := Result + Char(b - Modifier); end; CloseFile(F); end; //Funktion Ende procedure TForm1.Button1Click(Sender: TObject); begin //String laden (Dateipfad der umzuwandelnden Datei,Ziel String) LoadStringFromFile(filename,dateistring); //Verschlüsselung laden CryptStringToFile(dateistring,StrToINt(Edit1.text),filename); dateistring:= ''; // <- hier wird String gekillt (auf 0 gesetzt) end; procedure TForm1.Button2Click(Sender: TObject); begin //Fileort durch Öffnungsdialog herausfinden if OpenDialog1.Execute then begin filename := OpenDialog1.Filename; end; end; procedure TForm1.Button3Click(Sender: TObject); var f:file of byte; begin // in dieser Zeile holen wir den verschluesselten String zurück dateistring:= CryptFileToString(filename,StrToINt(Edit1.text)); showmessage(dateistring); filename:='C:\Users\Noah\Desktop\projekt1.exe'; //Speichern AssignFile(f,filename); Reset(f); Write(f,dateistring); CloseFile(f); end; procedure TForm1.Edit1Change(Sender: TObject); begin end; end. |
AW: Variablentypen bei ord() erzeugen Fehler
Delphi-Quellcode:
var
t: Textfile; // das hier für ReadLn() / WriteLn() funktioniert besser begin AssignFile(t,Application.ExeName+'.txt'); Rewrite(t); // <-- wenn Datei neu ist, so wird sie erzeugt. Writeln(t, dateistring); CloseFile(t); end; |
AW: Variablentypen bei ord() erzeugen Fehler
Zitat:
LG Noah EDIT: Habs geschafft! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 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