AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datei lesen, erzeugen und abspeichern!
Thema durchsuchen
Ansicht
Themen-Optionen

Datei lesen, erzeugen und abspeichern!

Ein Thema von qube-us · begonnen am 26. Okt 2004 · letzter Beitrag vom 1. Dez 2004
Antwort Antwort
Seite 1 von 3  1 23      
qube-us

Registriert seit: 26. Okt 2004
14 Beiträge
 
#1

Datei lesen, erzeugen und abspeichern!

  Alt 26. Okt 2004, 04:53
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.

bye
Die Vergangenheit hat die Gegenwart und die Zukunft festgelegt, als sie selbst noch nicht existierte.
Alles ist sinnlos, aber alles hat seine Ursachen und Folgen.
http://3d-ee.zero-style.de/
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Datei lesen, erzeugen und abspeichern!

  Alt 26. Okt 2004, 07:13
Am Besten nutzt du dafür TFileStream. Benutzung siehe OH und dieses Forum.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
qube-us

Registriert seit: 26. Okt 2004
14 Beiträge
 
#3

Re: Datei lesen, erzeugen und abspeichern!

  Alt 26. Okt 2004, 17:32
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!!!
Die Vergangenheit hat die Gegenwart und die Zukunft festgelegt, als sie selbst noch nicht existierte.
Alles ist sinnlos, aber alles hat seine Ursachen und Folgen.
http://3d-ee.zero-style.de/
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Datei lesen, erzeugen und abspeichern!

  Alt 26. Okt 2004, 17:39
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 Delphi-Referenz durchsuchenTFileStream eingeben, Cursor drauf und F1 drücken.

Chris
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Datei lesen, erzeugen und abspeichern!

  Alt 26. Okt 2004, 18:40
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.
Andreas
  Mit Zitat antworten Zitat
qube-us

Registriert seit: 26. Okt 2004
14 Beiträge
 
#6

Re: Datei lesen, erzeugen und abspeichern!

  Alt 27. Okt 2004, 03:06
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!!!
Die Vergangenheit hat die Gegenwart und die Zukunft festgelegt, als sie selbst noch nicht existierte.
Alles ist sinnlos, aber alles hat seine Ursachen und Folgen.
http://3d-ee.zero-style.de/
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Datei lesen, erzeugen und abspeichern!

  Alt 27. Okt 2004, 08:52
Zitat von qube-us:
1.) Kann man die Buchstaben der Strings wie Bytes behandeln? Ich möchte nämliche nicht nur Textdateien machen.
So ist es. Lange Strings (AnsiString) können bis zu 2 GB an Daten aufnehmen.
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 von qube-us:
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
Genau ! Mit Insert und Delete können auch Zeichen gelöscht oder eingefügt werden. (Unit SysUtils)
Andreas
  Mit Zitat antworten Zitat
qube-us

Registriert seit: 26. Okt 2004
14 Beiträge
 
#8

Re: Datei lesen, erzeugen und abspeichern!

  Alt 27. Okt 2004, 22:48
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!!
Die Vergangenheit hat die Gegenwart und die Zukunft festgelegt, als sie selbst noch nicht existierte.
Alles ist sinnlos, aber alles hat seine Ursachen und Folgen.
http://3d-ee.zero-style.de/
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Datei lesen, erzeugen und abspeichern!

  Alt 27. Okt 2004, 23:35
Moin qube-us,

Zitat von qube-us:
...aber es funktioniert immernoch nicht...
und was funktioniert nicht?

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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
qube-us

Registriert seit: 26. Okt 2004
14 Beiträge
 
#10

Re: Datei lesen, erzeugen und abspeichern!

  Alt 28. Okt 2004, 18:25
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
Die Vergangenheit hat die Gegenwart und die Zukunft festgelegt, als sie selbst noch nicht existierte.
Alles ist sinnlos, aber alles hat seine Ursachen und Folgen.
http://3d-ee.zero-style.de/
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:44 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