Entwickler-Ecke

Dateizugriff - Datei über 64 Kb wie im Memo öffnen


MathiasH - Mi 12.06.02 12:29
Titel: Datei über 64 Kb wie im Memo öffnen
Hallo Leute
Ich brache für ein kleines Verschlüssel-Programm eine Möglichkeit Zeilen aus einer datei nacheinander auszulesen, die dann von meinem alog verschlüsselt werden, und dann wieder in eine andere Datei zu exportieren

Mein alog verschlüsselt je eine Zeile (function cryptline(s1: String):string;) und gibt sie dann zurück(länge bleibt gleich, nur ASCII Verschiebung)

Frage: wie geht das (die funktion steht schon!)

MathiasH


Udontknow - Mi 12.06.02 12:45

Hi!

Du musst dafür deine Textdatei mit " AssignFile(F,'C:\test.txt') " und "Reset(F)" öffnen. Anschliessend kannst du mit dem Befehl "readln(F,Zeile)" Zeile für Zeile auslesen. Am Ende einfach "CloseFile(F)";
F ist eine Variable vom Typ TextFile.
Das Delphi-Beispiel über AssignFile wird dir weiterhelfen.

Cu,
Udontknow


Arakis - Mi 12.06.02 13:07
Titel: Stream
Bleibt da denn auch die Zeilenlänge gleich? :roll:
Wenn der Zeilenumbruch dabei auch "verschüsselt" wird, müsstest du glaub ich mit Hilfe eines Streams auf die Datei zugreifen.

Bis dann
user defined image


Udontknow - Mi 12.06.02 13:51

Ich verstehe sowieso nicht, wieso so viele Leute Verschlüsselungsalgos schreiben. Es gibt doch das Delphi Encryption Compendium, da ist alles drin: von Hash per MD5 bis Verschlüsselung mit Blowfish.

Naja, bis denne! :wink:


Arakis - Mi 12.06.02 14:04
Titel: Wo runterladen
Wo bekommt man denn dass "Delphi Encryption Compendium" her? :roll:

Bis dann
user defined image


Udontknow - Mi 12.06.02 14:34

Weiss ich leider grade nicht, aber google es dir doch einfach! :)


Arakis - Mi 12.06.02 14:40

"google es dir einfach"

Cool, jetzt kenne ich wieder mal ein Wort mehr :P

Goooooooooooogle
user defined image

Bis dann
user defined image


MathiasH - Do 13.06.02 13:06

Danke Für die schnelle Hilfe
werd's ausprobieren.

bei meiner verschlüsselung bleibt die Länge exakt die selbe und jedes ASCII Zeichen kann herauskommen, also auch Tab und Ret.
beim memo funktionierts ohne irgendwelche Probleme(bis 64kb).

PS.: wo komm ich eigentlich an die anderen smilies? (smillie an computer?), bei "weitere smillies ansehen" jedefalls nicht

Mathias


L.E.A. - Do 13.06.02 13:15

Hallo.

Das sollte auch mit der TStringList funktionieren.
TStringList.LoadFromFile(FileName: string) und
TStringList.SaveToFile(FileName: string) zum Laden und speichern. Da kannst du über String[i] gleich auf alle Zeilen zugreifen.

Viele Grüße
L.E.A.


webmaker - Mi 19.06.02 15:08

ich konnte mir das jetzt nicht alles durchlesen, aber im richedit kann man mehr als 64kb laden, angeblich sogar mehr als 2GB. Link: http://www.swissdelphicenter.ch/de/showcode.php?id=1144


MathiasH - So 23.06.02 10:51

RichEdit hab ich gleich am Anfang probiert, aber da kommt bei ver+ent-Schlüsselung nurnoch kauderwelsch raus.
Das mit TTextFile funze eh sehr gut.


MathiasH - Di 25.06.02 13:04

Hat jemand ne idee, wie man ganze verzeichnisse verschlüsseln kann(1 file!)


Udontknow - Di 25.06.02 13:57

Ne Idee habe ich schon:

Verzeichnis mit Findfirst/findnext durchgehen, wenn auf ein weiteres Verzeichnis gestossen, Funktion rekursiv aufrufen.

Bei jedem File speicherst du dann in einen FileStream den Pfad und den Dateinamen der Datei. Anschliessend schiebst du die Grösse der Datei auf diesen Stream. Schliesslich schiebst du den Inhalt der Datei auf den Stream.
Sobald alle Files im Stream sind, verschlüsselst du diesen und schreibst ihn dann in eine Datei.

Beim Entpacken zuerst den Stream entschlüsseln, dann einfach immer den Stream entlang: FilePfad und Namen lesen, evtl. Verzeichnisse mit ForceDirectories anlegen, Dateigrösse lesen und genausoviele Bytes aus dem Stream in die Datei schreiben, wie eben der Wert Dateigrösse angibt.

Cu,
Udontknow


MathiasH - Di 25.06.02 16:42

ne, damit kann ich leider nichts anfangen(aber ich versteh' die Idee).
Streams sind für mich böhmische Dörfer. :cry: