Autor Beitrag
MadMaX
Hält's aus hier
Beiträge: 7

WinME, Win2000Pro, SuSE Linux 8.2
Delphi 6 Enterprise
BeitragVerfasst: Sa 25.10.03 20:44 
Erstmal hallo,

Ich hab da ein Problem, ich hab jetzt schon mindestens 2,5 Stunden im Internet gesucht und NICHTS in meiner Richtung gefunden. Entweder bin ich zu doof zu suchen oder es funzt so wie ich das will nicht.

Also ich möchte ein Programm schreiben welches Datensätze von rund 2000, oder sogar mehr Personen in eine TXT Datei schreibt, ich kann hier leider keine Datenbank wie SQL o.ä verwenden. In der TXT Datei sollen folgene Daten der Personen stehen:
ausblenden Quelltext
1:
Name|Jahrgang|Wohnort|Bildpfad|...					

Jeder Datensatz(entspricht einer Person) wird in eine neue Zeile der TXT geschrieben. So weit so gut, nun nähere ich mich langsam meinem Problem. Ich lese jede Zeile der Datei in ein array:

zeile[0], zeile[1],....

Ich hab zwar keine Ahnung ob das so geschickt ist aber..... Naja auf jedenfall soll das Programm später nach Jahrgängen und Namen suchen können. Also könnte man das Array "zeile" doch einfach in einer While-Schleife durchsuchen und die dazugehörige Zeile der TXT-Datei ausgeben.

Aber wie?? Ich hab echt keinen Plan wie das vom Code her gehen kann.
:?: :?: :?:
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: So 26.10.03 09:39 
Titel: hmm,
ich würde die Sachen nicht in einzelne Arrays machen , sondern einen eigenen Recordtyp machen mit den Items die du brauchst. Damit hast du eine viel bessere übersich unf kannst die Sache auch viel einfacher erweiternt etc.

Naja und um die Geschwindigkeit zu erhöhen würd ich am Anfang alles in das Array einlesen, also alle Daten und erst nach allen Manipulationen wieder in die Datei zurück schreiben. Das ist viel effizienter und schaded nix. 2000 Datensätze sind noch kein Problem für den Hauptspeicher der heutigen Zeit.

Naja und Sortieractionen etc. kannste dann ja üebr ein extra Array besorgen, einfach die relevanten Daten von Hauptstamm in das seperate Array einlesen und dort dann sortieren. Die Hauptdaten werden dadurch nicht verändert. Naja und wenn du jedem Datensatz eine extra ID gibst dann kannste die dann auch nach den sortieren noch genau zuweissen.

usw.

_________________
mfg. Joel
MadMaX Threadstarter
Hält's aus hier
Beiträge: 7

WinME, Win2000Pro, SuSE Linux 8.2
Delphi 6 Enterprise
BeitragVerfasst: Mi 29.10.03 17:39 
Vielen dank für die Antwort,

ich habe jetzt nur noch ein Problem welches ich nicht zu beseitigen mag, ich lese die Datei immernoch zeilenweise in Arrays aus, zeile[0], zeile[1]... jetzt möchte ich die zeilen zählen und schließlich die einzelnen Arrays in einer for schleife durchsuchen.

ich habe keine Ahnung wie ich einer for Schleife sagen kannm, immer das nächst höhere array zu durchsuchen


Bin für jede Antwort sehr dankbar
Max
pHew
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win XP Prof
D6 Enter
BeitragVerfasst: Do 18.12.03 18:06 
Ich würds so probieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
For i:= 0 to high(Array) do
  begin
   For j:= 0 to high(Array) do
      //hier setzt die Vergleiche reinbauen   
    end;
  end;


Es wird also jede Zeile mit jeder anderen verglichen. Such mal bei Google nach dem Thema "Bubblesearch" oder "Dreieckssuche"... da wird das Sortieren genauer beschrieben.

Was mich viel mehr interessieren würde: Wie kriege ich, wenn in einer Textdatei die Strings durch Leerzeichen getrennt sind, die Strings da einzeln raus und in ein Array?

ReadLn(Datei, String1, String2, ..., Stringn) ging nicht... da liest er in String1 die gesamte Zeile

_________________
Kill Bill
pHew
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win XP Prof
D6 Enter
BeitragVerfasst: Di 30.12.03 01:17 
*heimlich up*

_________________
Kill Bill