Einzelnen Beitrag anzeigen

Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Hilfe: Infos gezielt aus einer Datei lesen&schreiben

  Alt 17. Jun 2006, 14:10
Hallo ecspooky,

wenn Du die Daten einer Zeile ändern willst, d.h. einem Gruppenleiter user hinzufügen
oder entfernen, musst Du die Datei neu schreiben.
Also eine DummyDatei erstellen, alle Zeile bis zu der veränderten Zeile in die
DummyDatei schreiben - dann die veränderte Zeile hineinschreibenund dann anschließend
den ganzen Rest.

Du siehst also, so ein Art Datenbank mit einer TextDatei aufzubauen ist von der
Handhabung nicht so einfach.

Alterantiv könntest Du eine Inidatei (TIniFile oder TMemIniFile) erstellen
pro Gruppenleiter eine Section erstellen und als Key eine Zeile mit den Usern.
Die IniDatei sieht dann ungefähr so aus.

[Name_GrpLtr1]
users = user1, user2, user3

[Name_GrpLtr2]
users = user4, user5

Mit den Methoden von TIniFile kannst Du dann direkt
die User eines Gruppenleiters auslesen und auch wieder zurückschreiben.
Um TIniFile besser kennenzulernen, kannst Du mal ein wenig in der OnlineHilfe herumstöbern.

Eine weitere Alternative wäre, das ganze Datensatzorientiert aufzuziehen.
d.h. Du hast pro Gruppenleiter einen Datensatz.

Delphi-Quellcode:
TGruppenLeiter = record
  name : String[20];
  users : String[255];
end;
Die Datei wäre dann ein

DataFile : File of TGruppenLeiter; ein Datensatz wäre

DataSet : TGruppenleiter; auf die Datei kannst Du so zugreifen:

AssignFile(DataFile,'deinDateiName');
Reset(DataFile);
Read(DataFile,Dataset);

Der Gruppenleitername steht dann in

DataSet.name

die User in

DataSet.users

Wenn Du die User eines Gruppenleiters änderst

Kannst Du sie mit

Write(DataFile,DataSet) wieder zurückschreiben.
In der Datensatzorientierten Datei
kannst Du mit FilePos(DataFile) und Seek(DataFile,DatenSatzNummer) navigieren.

Du mußt allerdings auch die Datei umkopieren
wenn Du einen Datensatz löschen willst.

Hoffe, habe Dich nun nicht zuviel verwirrt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat