AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablentypen bei ord() erzeugen Fehler

Offene Frage von "KodeZwerg"
Ein Thema von Nox · begonnen am 12. Jul 2018 · letzter Beitrag vom 13. Jul 2018
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#31

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:07
Delphi-Quellcode:
procedure CryptStringToFile(const InputString: string; const Modifier: Byte; const Filename: String);
var
  s: string; // <<-- diese Zeile löschen, überbleibsel von all-in-one version
Als Lernprojekt würde ich Dir empfehlen meine Methode in einen Filestream umzuwandeln, das ist nicht all zu schwer und hat eine Steile Lernkurve.
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....
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Nox

Registriert seit: 12. Jul 2018
22 Beiträge
 
#32

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:26
Eine letzte frage warum funktioniert das bitte jetzt nicht mehr?

LG Noah
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:30
writeln(f,.....
Gruß vom KodeZwerg

Geändert von KodeZwerg (13. Jul 2018 um 01:32 Uhr)
  Mit Zitat antworten Zitat
Nox

Registriert seit: 12. Jul 2018
22 Beiträge
 
#34

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:30
Du benutzt kein Konsolen-Programm, oder?
nein eine normale anwendung
LG Noah
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:34
writeln(f,.....

hatte zu spät gelesen, bin müde
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Nox

Registriert seit: 12. Jul 2018
22 Beiträge
 
#36

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:36
najaaa...da geht irgendwas nicht

LG Noah
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:43
Kopiere Deine Methode hier als Delphi-Code rein, ich muss mehr sehen, vor allem im oberen deklarations Bereich der hier fehlt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Nox

Registriert seit: 12. Jul 2018
22 Beiträge
 
#38

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#39

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 01:55
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Nox

Registriert seit: 12. Jul 2018
22 Beiträge
 
#40

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 13. Jul 2018, 02:00
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;
leider funktioniert jetzt das speichern nicht mehr aber ist schon okay

LG Noah


EDIT: Habs geschafft!

Geändert von Nox (13. Jul 2018 um 02:09 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz