Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe: Infos gezielt aus einer Datei lesen&schreiben! (https://www.delphipraxis.net/71566-hilfe-infos-gezielt-aus-einer-datei-lesen-schreiben.html)

ecspooky 17. Jun 2006 10:23


Hilfe: Infos gezielt aus einer Datei lesen&schreiben!
 
Hallo Leute,
ich habe eine Datei wo Gruppenleiter drin stehen und dazu die jeweiligen User. Nun möchte ich gern das ein Gruppenleiter sich anmeldet am Programm und dort automatisch seine eingetragen User angezeigt werden. Außerdem soll er die Möglichkeit haben seiner Gruppe User zu löschen oder hinzuzufügen. Wie lese ich nun die Gruppenleiterzeile aus und auch die User?

Hab bis jetzt:

Zitat:

memo1.Lines.LoadFromFile(dateipfad);
aber da wird ja nur die ganze Datei angezeit.


Als Beispiel sieht die Datei so aus:
Zitat:

gruppenleiter_1::101:user1,user2,user10
gruppenleiter_2::102:user2,user10,user30
gruppenleiter_3::103:user1,user5,user34
Wäre supi wenn mir einer helfen könnte :o) Vielen Dank schonmal!!!

ecspooky 17. Jun 2006 10:25

Re: Hilfe: Infos gezielt aus einer Datei lesen&schreiben
 
Liste der Anhänge anzeigen (Anzahl: 1)
in einem anderen forum hab ich schon etwas hilfe dazu bekommen und hier hab ich mal mein programm hochgeladen. soweit bin ich schon aber ich weiß nun nicht wie ich die user einer gruppe hinzufügen oder löschen kann und das ganze beim beenden auch speichern kann.

Klaus01 17. Jun 2006 14:10

Re: Hilfe: Infos gezielt aus einer Datei lesen&schreiben
 
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

Delphi-Quellcode:
DataFile : File of TGruppenLeiter;
ein Datensatz wäre

Delphi-Quellcode:
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

Delphi-Quellcode:
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

Hobby-Programmierer 17. Jun 2006 15:03

Re: Hilfe: Infos gezielt aus einer Datei lesen&schreiben
 
Tach ..., :)
Zitat:

Zitat von Klaus01
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;
Du mußt allerdings auch die Datei umkopieren
wenn Du einen Datensatz löschen willst.

Ich kann mich Klaus nur anschliessen in puncto typisierter Datei mittels Record. Allerdings würde ich den record etwas anders organisieren.
Delphi-Quellcode:
TGruppenLeiter = record
  aktiv : Boolean;
  name : String[20];
  users : String[255];
end;
Vorteil ist das ein 'Löschbit' gesetzt werden kann, d.h. beim einlesen der Datensätze können die 'inaktiven' einfach ignoriert werden. Die Datenbank, soweit man das so nennen kann :gruebel:, muss nicht jedesmal reorganisiert werden.

@ecspooky
Ich habe irgendwo auf Platte ein Super-Tutorial über typisierte Dateien. Solltest Du interesse haben such ich das gerne für Dich raus.

LG Mario

vlees91 17. Jun 2006 15:07

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

Zitat von Hobby-Programmierer
Ich habe irgendwo auf Platte ein Super-Tutorial über typisierte Dateien. Solltest Du interesse haben such ich das gerne für Dich raus.

hi
Ich bin zwar nicht ecspooky, aber es wäre sehr nett, wenn du das Tut raussuchen würdest ;)

Hobby-Programmierer 18. Jun 2006 20:20

Re: Hilfe: Infos gezielt aus einer Datei lesen&schreiben
 
Nabend @vlees91 ..., :)
hab das zwar bei mir nimmer gefunden :oops: aber ich wusste ja wo ich es her hatte. :idea:
Typisierte Dateien von Martin Strohal
Ist auf jeden Fall zu empfehlen, viel Spass beim lesen

LG Mario :dancer:


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