Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Textdatei mit einem String vergleichen (https://www.delphipraxis.net/175828-textdatei-mit-einem-string-vergleichen.html)

Baum21 22. Jul 2013 18:16

Textdatei mit einem String vergleichen
 
Hi Leute
Ich habe vor ein Programm zu schreiben in dan man sich einloggen kann.
Dafür soll man in z.B. ein Edit das Passwort schreiben können .
Wenn man dann auf einen Button klickt soll der Inhalt des Edits mit einer Textdatei verglichen werden.
Später soll man dann auch das passwort ändern und dafür die Textdatei mit dem neuen Passwort überschreiben können.
Ich habe mich schon seit einem Jahr nichr mehr mit dem Programmieren beschäftigt und weiß nur noch das es irgendwas mit Read, Write und ReWrite war, finde aber im Internet nur ewig lange Qelltexte von denen ich nichts verstehe.
Also was ich noch von früher weiß sieht in etwa so aus:

...
var
x: TextFile;
begin
LoadFile(x);
If y = read(x) then ...
X := File.free;

(irgendwie so in der Art)
Im internet finde ich nur ewig lange Texte mit "TFileStream".
Also Ich hoffe ihr wisst was ich mein und könnt mir weiterhelfen :)
Außerdem soll man diese Textdatei nacher natürlich nicht mehr öffnen oder löschem können.
Ich habe unter Windows XP die optionen die Datei zu verstecken (Ich find sie zumindest nicht mehr in dem ordner in dem ich sie gepackt habe :D) und scheibzuschützen. kann Delphi dann überhaupt noch darauf zugreifen?
Vielen Dank schon mal im Voraus :)

Perlsau 22. Jul 2013 18:32

AW: Textdatei mit einem String vergleichen
 
Zitat:

Zitat von Baum21 (Beitrag 1222294)
Ich habe mich schon seit einem Jahr nichr mehr mit dem Programmieren beschäftigt und weiß nur noch das es irgendwas mit Read, Write und ReWrite war, finde aber im Internet nur ewig lange Qelltexte von denen ich nichts verstehe.

Und jetzt? Was erwartest du hier? Daß dir jemand deinen Code schreibt?

Mit anderen Worten: Das Lernen bzw. das Wiedererlernen kann dir keiner abnehmen. Leute, die dafür zu faul sind, werden hier nicht gerne gesehen.

Baum21 22. Jul 2013 19:30

AW: Textdatei mit einem String vergleichen
 
Es geht mir nicht darum das mir jemand den gesamten code hinklatscht, sondern ich finde einfach nichts in der hilfe von delphi oder im Internet finde.
mir würde schon ein link oder ähnliches genügen, zu einer seite wo ich eine ERKLÄRUNG (und nicht den gesamten code) zum arbeiten mit Textdateien finde. Versteh mich nicht falsch! Ich WILL es ja wieder lernen, weiß aber nicht wo!

Baum21 22. Jul 2013 19:56

AW: Textdatei mit einem String vergleichen
 
function FileToString(const AFilename: string; StartPos: Integer=0; EndPos: Integer=0): string;
var
* FileStream : TFileStream;
* wlCount: Integer;
begin
* if FileExists(AFilename) then
* begin
* * if StartPos < 0 then
* * * StartPos := 0;

* * FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
* * try
* * * if (EndPos <= StartPos) or (EndPos > FileStream.Size) then
* * * * EndPos := FileStream.Size;
* * * wlCount := EndPos - StartPos;
* * * if FileStream.Size > StartPos then
* * * begin
* * * * SetLength(Result, wlCount);
* * * * FileStream.Seek(StartPos, soFromBeginning);
* * * * FileStream.Read(Result[1], wlCount);
* * * end;
* * finally
* * * FileStream.Free;
* * end;
* end
* else
* * Result := '';
end;

Sowas zb finde ich bisher immer, ich denke allerdings nicht, dass ich das ganze zeugs benötige und vor einigen nocht verstehe. :D

bernerbaer 22. Jul 2013 19:58

AW: Textdatei mit einem String vergleichen
 
Siehe Tutorial bei Delphitreff

Furtbichler 23. Jul 2013 08:26

AW: Textdatei mit einem String vergleichen
 
Erstens: Verwende die Code-Tags. Dazu den Quelltext markieren und auf das Delphi-Symbol klicken.
Delphi-Quellcode:
function FileToString(const AFilename: string; StartPos: Integer=0; EndPos: Integer=0): string;
 var
   FileStream : TFileStream;
   wlCount: Integer;
 begin
   if FileExists(AFilename) then
   begin
     if StartPos < 0 then
       StartPos := 0;

     FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
     try
       if (EndPos <= StartPos) or (EndPos > FileStream.Size) then
         EndPos := FileStream.Size;
       wlCount := EndPos - StartPos;
       if FileStream.Size > StartPos then
       begin
         SetLength(Result, wlCount);
         FileStream.Seek(StartPos, soFromBeginning);
         FileStream.Read(Result[1], wlCount);
       end;
     finally
       FileStream.Free;
     end;
   end
   else
     Result := '';
 end;
Zweitens: Die 20+ Zeilen verstehst Du nicht? WAS verstehst Du daran nicht? Schau Sie dir einfach in Ruhe an und lies die Hilfetexte zu jeder verwendeten Methode.

Klaus01 23. Jul 2013 08:39

AW: Textdatei mit einem String vergleichen
 
Zitat:

Zitat von Baum21 (Beitrag 1222294)
..
Dafür soll man in z.B. ein Edit das Passwort schreiben können .
Wenn man dann auf einen Button klickt soll der Inhalt des Edits mit einer Textdatei verglichen werden.
Später soll man dann auch das passwort ändern und dafür die Textdatei mit dem neuen Passwort überschreiben können.

Etwas anderes:

Ein Passwort wird in der Regel nicht als Klartext in einer (Text)Datei gespeichert.
Aus dem Passwort kann ein eindeutiger Footprint/Hash [sha1, md5] erzeugt werden,
diesen kannst Du dann in einer Datei speichern.
Wird nun ein Passwort abgefragt, wird aus dem Inhalt des Edit1.Text wieder ein Hash erzeugt
und mit dem abgespeicherten verglichen.
Soll ein neues Passwort abgespeichert werden, wird wieder nur der Hash abgespeichert.

Von der Vorgehensweise bezüglich speichern und laden ist es das gleiche wie beim Abspeichern des Passworts als
Klartext.

Das nur am Rande..

Grüße
Klaus

p80286 24. Jul 2013 10:40

AW: Textdatei mit einem String vergleichen
 
Die einfachste und in den meisten Fällen ausreichende Methode an den Inhalt von Textdateien zu kommen ist die Benutzung von TStringlist.
Delphi-Quellcode:
var
  myList : TStringlist;

begin
  myList :=TStringlist.Create;
  myList.LoadfromFile([I]meineDatei[/I]);
  //mach was mit mylist
  mylist.SavetoFile([I]MeineandereDatei[/I]);
  myList.Free;
die alte Methode funktioniert allerdings auch noch

Delphi-Quellcode:
assignfile(textdatei,meineDatei;
reset(textdatei);
repeat
  readln(textdatei,satz);
 ...
until eof(textdatei);
closefile(textdatei);
Gruß
K-H
Gruß

Baum21 28. Jul 2013 16:20

AW: Textdatei mit einem String vergleichen
 
hat geklappt, vielen dank für die antworten :)


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