![]() |
Datei lesen, erzeugen und abspeichern!
Huhu Leute!!!
Mich würde es mal sehr interessieren, wie man mit Delphi einzelne Bytes aus Dateien, wie in einem Hex-Editor einlesen kann anschließend verändern und wieder in der selben Datei abspeichern kann. Ich weiß, dass das an sich drei Schritte sind, wobei der mittlere, nämlich das Verändern der Bytes das einzige ist was ich kann. So bleiben noch die beiden Fragen: 1.) Wie lese ich Bytes aus einer Datei in Delphi ein, bzw. wie kann ich sie während das Delphi-Programm läuft nachträglich noch in das fertige Programm bringen, wie z.B. ein Editor, der auch ein fertiges Programm ist und trotzdem noch nachträglich Dateien lädt. 2.) Wie kann ich Bytes die in einem laufenden Delphi-Programm erzeugt wurden in einer Datei abspeichern? Ich hoffe ich bekomme eine vollständige und genaue Antwort, die ich auch verstehe und die nicht nur aus einem Befehl besteht, bei dem ich die Anwendung nicht durchblicke, keine Antwort wie man sie in der Delphi-Hilfe bekommt. Wichtiger ist aber natürlich, DASS ich EINE ANTWORT bekomme. :zwinker: bye :coder2: |
Re: Datei lesen, erzeugen und abspeichern!
Am Besten nutzt du dafür TFileStream. Benutzung siehe OH und dieses Forum.
|
Re: Datei lesen, erzeugen und abspeichern!
Genau so eine Antwort bringt mir recht wenig, weil ich mit TFileStream garnichts anfangen kann und was OH weiß ich auch nicht.
Aber ich bemühe mich mal hier im Forum was zu finden!!! |
Re: Datei lesen, erzeugen und abspeichern!
Hi,
OH meint die Online-Hilfe (siehe Worterklärung beim draufzeigen auf OH mit der Maus) und bezeichnet die Hilfe, die bei Delphi dabei ist und die meisten Delphi-Eigenen Funktionen und Typen erklärt. Einfach ![]() Chris |
Re: Datei lesen, erzeugen und abspeichern!
Mit der folgenden Unit kannst du einen String in eine Datei speichern oder daraus laden:
Delphi-Quellcode:
unit FileStreamUtils;
interface function LoadStringFromFile(const filename:string):string; procedure SaveStringToFile(const filename, data:string); implementation uses Classes, SysUtils; function LoadStringFromFile(const filename:string):string; var fs : TStream; begin fs := TFileStream.Create(filename, fmOpenRead or fmShareDenyWrite); try SetLength(Result, fs.Size); fs.ReadBuffer(Result[1], fs.Size); finally fs.Free; end; end; procedure SaveStringToFile(const filename, data:string); var fs : TStream; begin fs := TFileStream.Create(filename, fmOpenWrite or fmShareDenyWrite); try fs.WriteBuffer(data[1], Length(data)); finally fs.Free; end; end; end. |
Re: Datei lesen, erzeugen und abspeichern!
Ah, DANKE für den Quellcode, werde mal ein bischen damit herumexperimentieren!!!
Naja, was ich von der Delphi-Hilfe halte habe ich ja oben schon geschrieben: Ich werde aus der nicht schlau!!! Aber ich hab aufgrund des Quellcodes schonwieder zwei neue Fragen, die aber einfacher zu beantworten sind: 1.) Kann man die Buchstaben der Strings wie Bytes behandeln? Ich möchte nämliche nicht nur Textdateien machen. 2.) Enthält das Array "data" die komplette geladene Datei, so dass man mit data[1] auf das erste Byte zugreift? und mit data[length(data)] auf das letzte? Bis dann!!! :thumb: |
Re: Datei lesen, erzeugen und abspeichern!
Zitat:
Da Gute ist, dass jegliches Zeichen im Bereich 0 bis 255 darin gespeichert werden kann. (im Gegensatz zu C/C++ wo ja $00 den String abschliesst) Zitat:
|
Re: Datei lesen, erzeugen und abspeichern!
Hi, leider komme ich nicht klar mit dem Quellcode!
Ich habe erst versucht die Befehle so zu übernehmen, da es nicht funktionierte habe ich für das Wort "filename" den Dateienname an die Stelle geschrieben einer Datei, die im selben Ordner war, aber es funktioniert immernoch nicht nun komme ich nicht weiter. Es wäre nett, wenn mit jemand zeigen könnte, wie man genau den Inhalt einer text-Datei in einem Text-Feld laden kann, vielleicht verstehe ich den Rest dann ja. Da sist ziemlich komisch, wenn ich etwas von leuten erklärt bekomme, so wie das oben der Fall ist komme ich nich tso gut damit klar, aber wenn ich ne funktionierende Projekt-Datei hätte dann gibt's auch keine weiteren Fragen mehr, weil dann auch keine Fehler mehr auftreten können. Falls jemand so fleißig ist und so was machen kann und mir an qube@epost.de schicken könnte, würde ich mich unglaublich freuen, dann hätten nämlich die Missverständnisse ein Ende. Bis dann!! :thumb: |
Re: Datei lesen, erzeugen und abspeichern!
Moin qube-us,
Zitat:
Du hast da oben zwei fertige Prozeduren, die Du nur noch mit dem Dateinamen (gesamter Pfad) und, beim Speichern, mit einen String der die Daten enthält versorgen musst. |
Re: Datei lesen, erzeugen und abspeichern!
Wenn ich wüßte woran es liegt, könnte ich den Fehler j aselber finden, aber ich habe das alles so übernommen und es funktioniert nicht!!
Mir sinngemäß zu sagen, dass es gehen müsste hilft mir auch nicht weiter. Zu der Frage was nicht funktioniert kann ich schonmal sagen, dass das komplieren schon nicht geht...dass das daran liegt, dass da dann was falsch ist weiß ich selber....wäre halt deshalb gut wenn ich einfach n fertiges projekt an qube@epost.de geschickt bekommen würde, wenn das ja soooo einfach ist und dann wäre das Problem auch auf einmal aus der Welt geschaftt und es ist echt nicht so, dass ich es nicht mehrfach probiert hätte mit diesem Quellcode irgendwas anzufangen, aber ich bekomms echt ned hin!!! Machts gut Leute :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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