Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi verschlüsselte Datei auslesen (https://www.delphipraxis.net/17017-verschluesselte-datei-auslesen.html)

Paul 26. Feb 2004 22:57


verschlüsselte Datei auslesen
 
hi,

das andere problem haben wir ja super gelöst :)
ich habe die datei verschlüsselt, wie kann ich sie jetzt auslesen???
ich habe schon mal eine simple verschlüsselung gemacht aber die war im programm und nicht von einer datei auslesen.

Delphi-Quellcode:
implementation

uses Unit2;

{$R *.dfm}

const
  Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';

function Decode64(S: string): string;
var
  i: Integer;
  a: Integer;
  x: Integer;
  b: Integer;
begin
  Result := '';
  a := 0;
  b := 0;
  for i := 1 to Length(s) do
  begin
    x := Pos(s[i], codes64) - 1;
    if x >= 0 then
    begin
      b := b * 64 + x;
      a := a + 6;
      if a >= 8 then
      begin
        a := a - 8;
        x := b shr a;
        b := b mod (1 shl a);
        x := x mod 256;
        Result := Result + chr(x);
      end;
    end
    else
      Exit;
  end;
end;

//---- Entschlüsselung Ende ----

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
    myIni:TIniFile;
    eRec:TSearchRec;

begin
If OpenDialog1.execute then
begin

Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
//Edit6.Clear;

if FindFirst(ExtractFilePath(Application.ExeName) + '*.ini', faanyfile, eRec) = 0 then begin
  repeat;
    if (eRec.Name <> '.') and (eRec.Name <> '..') then begin
      myini := TIniFile.Create(ExtractFilePath(Application.ExeName) + eRec.Name);
      Edit1.Text := myini.ReadString('FTP','IP','N/A');
      Edit2.Text := myini.ReadString('FTP','user','N/A');
      Edit3.Text := myini.ReadString('FTP','pass','N/A');
      Edit4.Text := myini.ReadString('FTP','Path','N/A');
      Edit5.Text := myini.ReadString('FTP','Port','N/A');
    end;
  until FindNext(eRec) <> 0;
FindClose(eRec);
end;

begin
try
  ListView1.Items.Clear;
  ListView1.ViewStyle := vsReport;
  i:=1;
    while (myini.ValueExists('DATEN',IntToStr(i))) do
    begin
      Listitem := listview1.Items.Add;
      Listitem.Caption := myini.ReadString('DATEN', IntToStr(i),'N/A');
      Listitem.SubItems.Add(myini.ReadString('DATEN','1.' + IntToStr(i),'N/A'));
      inc(i);
    end;
    finally
      myini.Free;
   end;
end;
end;
end;
hier das programm zum entschlüsseln und verschlüsseln

http://www.downtown.madcity.de/paul/prog/Base64.rar

wäre über jede hilfe dankbar

mfg Paul

Luckie 27. Feb 2004 11:10

Re: verschlüsselte Datei auslesen
 
Ja und wo ist jetzt das Problem? Eventuell solltest du auch noch irgendwo Decode64 aufrufen.

Paul 27. Feb 2004 15:13

Re: verschlüsselte Datei auslesen
 
Hi,

ich weiß ja nicht genau wie ich auslesen soll
deshalb frag ich ja

hier mal mein ideenansatz

Delphi-Quellcode:
if FindFirst(ExtractFilePath(Application.ExeName) + '*.ini', faanyfile, eRec) = 0 then begin
  repeat;
    if (eRec.Name <> '.') and (eRec.Name <> '..') then begin
      AssignFile(f,ExtractFilePath(Application.ExeName) + eRec.Name);
      Reset(f);
      repeat
      ReadLn(f, S1);
      S2:= Decode64(S1);

      until EoF(f);
      CloseFile(f);

      Edit1.Text := myini.ReadString('FTP','IP','N/A');
      Edit2.Text := myini.ReadString('FTP','user','N/A');
      Edit3.Text := myini.ReadString('FTP','pass','N/A');
      Edit4.Text := myini.ReadString('FTP','Path','N/A');
      Edit5.Text := myini.ReadString('FTP','Port','N/A');
    end;
  until FindNext(eRec) <> 0;
FindClose(eRec);
end;
mfg Paul

Luckie 27. Feb 2004 15:21

Re: verschlüsselte Datei auslesen
 
Und? Sieht doch auf den ersten Blick gut aus. Und da du nichts von Problemen oder etwaigen Fehlermeldungen schriebst, gehe ich mal davon aus, dass es das tut, was du willst.

Paul 27. Feb 2004 15:29

Re: verschlüsselte Datei auslesen
 
nein leider macht er noch eine fehlermeldung :(

Delphi-Quellcode:
if FindFirst(ExtractFilePath(Application.ExeName) + '*.TDP', faanyfile, eRec) = 0 then begin
  repeat;
    if (eRec.Name <> '.') and (eRec.Name <> '..') then begin
      AssignFile(f,ExtractFilePath(Application.ExeName) + eRec.Name);
      Reset(f);
      repeat
      ReadLn(f, S1);
      S2:= Decode64(S1);

      until EoF(f);
      CloseFile(f);

      Edit1.Text := myini.ReadString('FTP','IP','N/A'); // <--- hier bleibt er stehen, ick denk mal weil er nicht weiß was er mit myini machen soll
      Edit2.Text := myini.ReadString('FTP','user','N/A');
      Edit3.Text := myini.ReadString('FTP','pass','N/A');
      Edit4.Text := myini.ReadString('FTP','Path','N/A');
      Edit5.Text := myini.ReadString('FTP','Port','N/A');
    end;
  until FindNext(eRec) <> 0;
FindClose(eRec);
end;
mfg

Stanlay Hanks 27. Feb 2004 15:38

Re: verschlüsselte Datei auslesen
 
Hast du die INI auch erstellt? (Create) Wenn ja, dann versuch mal, einen statischen Dateipfad ('C:\test.ini')einzusetzen, bzw überprüf mit FileExists() ob die Datei existiert. Vielleicht findet er die Datei ja einfach nicht :gruebel:

Luckie 27. Feb 2004 15:53

Re: verschlüsselte Datei auslesen
 
Wo hast du eien Instanz von myini erzeugt?

Paul 28. Feb 2004 01:48

Re: verschlüsselte Datei auslesen
 
hi,

also wenn ich das in die memo.text lesen lasse entschlüsselt er das, aber wie bekomme ich das jetzt auf myini bezogen so das alles entschlüsselte auf seinen platz wieder kommt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
    myIni:TIniFile;
    eRec:TSearchRec;
    f:Textfile;
    S1, S2:String;
begin
If OpenDialog1.execute then
begin

Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
//Edit6.Clear;

if FindFirst(ExtractFilePath(Application.ExeName) + '*.TDP', faanyfile, eRec) = 0 then begin
  repeat;
    if (eRec.Name <> '.') and (eRec.Name <> '..') then begin
      AssignFile(f,ExtractFilePath(Application.ExeName) + eRec.Name);
      myini := TIniFile.Create(ExtractFilePath(Application.ExeName) + eRec.Name);
      Reset(f);
      repeat
      ReadLn(f, S1);
      S2:= Decode64(S1);
      memo1.text:=S2;
      until EoF(f);
      CloseFile(f);

      Edit1.Text := myini.ReadString('FTP','IP','N/A');
      Edit2.Text := myini.ReadString('FTP','user','N/A');
      Edit3.Text := myini.ReadString('FTP','pass','N/A');
      Edit4.Text := myini.ReadString('FTP','Path','N/A');
      Edit5.Text := myini.ReadString('FTP','Port','N/A');
    end;
  until FindNext(eRec) <> 0;
FindClose(eRec);
end;

begin
try
  ListView1.Items.Clear;
  ListView1.ViewStyle := vsReport;
  i:=1;
    while (myini.ValueExists('DATEN',IntToStr(i))) do
    begin
      Listitem := listview1.Items.Add;
      Listitem.Caption := myini.ReadString('DATEN', IntToStr(i),'N/A');
      Listitem.SubItems.Add(myini.ReadString('DATEN','1.' + IntToStr(i),'N/A'));
      inc(i);
    end;
    finally
      myini.Free;
   end;
end;
end;
end;
mfg Paul


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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