Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einfache Textdateien (https://www.delphipraxis.net/4188-einfache-textdateien.html)

hans-peter 18. Apr 2003 16:33


Einfache Textdateien
 
Hallo Gemeinde!

Bevor ich angefangen habe mich für Delphi zu interessieren, hab ich mit Basic rumgestrickt. Eine Random-Datei (mit freiem Zugriff) zu erstellen und mit ihr Sätze zu verwalten, holen, ändern, speichern usw. war einfach.

In den gängigen Delphibüchern wird diese (altmodische) Art der Daten-Verwaltung vernachlässigt. Es gibt ja Datenbanken.

Hat jemand ein Tutorial, in welchem sämtliche Vorgänge wie Datei öffnen/schließen, Sätze anhängen oder Sätze editieren und wieder abspeichern, erläutert werden?

Das würd mich wahnsinnig interessieren.

Wie immer lieben Gruß
Hans-Peter

sakura 18. Apr 2003 16:34

So auf Anhieb, könnte ich Dir jetzt nur mal ein wenig Source hintippen, aber nicht getestet :?

Delphi-Quellcode:
type
  // datensatz struktur
  TMyRec = record
    Wert1, Wert2: Byte;
    Wert3: array[0..50] of Char;
  end;

var
  // datei handle
  F: File of TMyRec;
  MyRec: TMyRec;

begin
  // datei auswählen
  AssignFile(F, 'C:\Temp\Datenschrott');
  // datei öffnen
  // bin mir nicht sicher, entweder so
  Reset(F);
  // oder so
  Reset(F, 1);

  // sechsten Datensatz ansteuern (von 0 an zählen)
  Seek(F, 5);
  // lesen
  Read(F, MyRec);
  // schreiben - jetzt der 7. Datensatz, da der sechste gerade gelesen wurde
  Write(F, MyRec);


  // datei schliessen
  CloseFile(F);
end;
Das sollte Dir auf jeden Fall schon einmal einen Start geben - ist eigentlich auch ganz einfach. In der Hilfe, einfach mal nach den Stichwörtern suchen, weitere Vorschläge werden gezeigt.

...:cat:...

Christian Seehase 18. Apr 2003 17:13

Moin Hans-Peter,

und so sähe sakura's Beispiel unter Verwendung von TFileStream aus:

Delphi-Quellcode:
type
  TMyRec = record
    Wert1, Wert2: Byte;
    Wert3: array[0..50] of Char;
  end;

var
  fsWork : TFileStream;
  MyRec : TMyRec;

begin
  fsWork := TFileStream.Create('C:\Temp\Datenschrott',fmOpenReadWrite);
  try
    fsWork.Seek(5*SizeOf(TMyRec),soFromBeginning);
    fsWork.Read(MyRec,SizeOf(MyRec));
    fsWork.Write(MyRec,SizeOf(MyRec));
  finally
    FreeAndNil(fsWork);
  end;
end;
Prinzipieller Nachteil dieser Methode(n):
Es funktioniert nur bei gleicher Satzlänge, dass heisst, es könnte viel Platz verschenkt werden.

hans-peter 18. Apr 2003 17:31

Ich hab ´nen Vorschlag:
 
Wirklich, ich finde es wird Zeit diesen Vorschlag zu machen.
Da dieses Forum sowieso das Beste ist, was mir passieren konnte,
mach ich den Vorschlag einfach mal:

Und meine Anfrage nach mehr Erläuterungen zum Umgang mit einfachen Textdateien ist das richtige Beispiel.

Es sollte in diesem Forum eine Ecke geben, wo diese simplen (Anfänger-)Probleme jeweils komplett in einem kleinen Beispielprogramm durchexerciert werden. Damit beginnend, wo was in der Quelldatei hingehört, was beachtet werden muß und dann die dazugehörigen zusammenhängenden Befehle.

In meinem Fall: Datei anlegen, öffnen, Sätze gezielt hervorholen, ändern, speichern, schließen ....

Nennt die Ecke "Tutorial-Ecke", erfindet eine Schlagwortsuche und eine Menge gestresster Programmiernovizen atmen auf.

Ich finde den Vorschlag gut, denn ich weiß, was Einsteiger brauchen.
Das hat nichts nur mit ´Abschreiben´ zu tun. Ich für meinen Teil bin überzeugt davon, daß auch auf andere zutrifft: Einmal abgeschrieben und du weißt, wie´s geht.

Wie immer lieben Gruß
Hans-Peter

sakura 18. Apr 2003 17:41

Das stimmt und Du hast recht. Hier erst einmal ein Link zu unserer Tutorial-Sparte. Leider ist die noch nicht sehr voll, aber sie wächst langsam und stetig. Immerhin, es gibt sie schon einmal ;-)

...:cat:...


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