Autor Beitrag
t3h
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: So 14.10.07 15:38 
Hallo geschätzte Community ich möchte in ein Programm eine .txt Datei einlesen der Aufbau der .txt-Datei sieht so aus:
ausblenden Quelltext
1:
2:
3:
4:
   Wert1  | ZugehörigerWert1
   Wert2  | ZugehörigerWert2
   ...
   Wert(n)| ZugehörigerWert(n)


Ich hab einen eigenen Variablen-Typ geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type
  TDaten = record
    AbfrageWert: string;
    ZugehörigerWert: string;
  end;

und habe einen Array der aus diesem Variablen-Typ besteht
ausblenden Delphi-Quelltext
1:
2:
var
  DatenDynArray : Array of TDaten;


jetzt möchte ich zB DatenDynArray[1].AbfrageWert := Wert1 zuweisen,
später dann die "AbfrageWerte" in eine Liste schreiben so das wenn man draufklickt den "ZugehörigenWert" angezeigt bekommt. Später soll noch eine SuFu hinzu kommen und man soll zufällig Werte herraussuchen können wie krieg ich das jetzt am besten hin? Wenn ihr QuellCode postet bitte kommentieren da ich nicht besonders erfahren im Umgang mit Delphi bin.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 14.10.07 15:49 
Hi,

ausblenden Datei auslesen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  procedure ReadFile(FileName: String);
  var TextFile: Text; S: String;
  begin
    Assign(TextFile,FileName);
    ReSet(TextFile); //zum Schreiben ReWrite(TextFile);
    while not EoF(TextFile) do //EoF=EndOfFile
      begin
         ReadLn(TextFile,S); //die Zeile der Datei wird gelesen (in S)
         //hier musst du dann den String zerschnippeln und in dein Array schreiben
      end;
    CloseFile(TextFile);
  end;


Xion

//EDIT: guck dich mal nach TIniFile um, damit wäre das ganze wesentlich einfacher ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: So 14.10.07 16:05 
Titel: Ich weiss
Leider hab ich genau mit dem aufteilen bzw dem schreiben in den Array ein Problem :(
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 14.10.07 17:00 
das sind eigentlich nur einfache String-Operationen

ausblenden Datei auslesen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
  procedure ReadFile(FileName: String);
  var TextFile: Text; S: String;
  begin
    Assign(TextFile,FileName);
    ReSet(TextFile); //zum Schreiben ReWrite(TextFile);
    while not EoF(TextFile) do //EoF=EndOfFile
      begin
         ReadLn(TextFile,S); //die Zeile der Datei wird gelesen (in S)
         SetLength(Arr,Length(Arr)+1); //Dein Array vergrößern
         Arr[High(Arr)].Wert:=Copy(S,1,Pos(' | ',S)-1); //Kopieren von Anfang bis nach ' | '
         Arr[High(Arr)].Wert2:=Copy(S,Pos(' | ',S)+Length(' | '),Length(S)); //Kopieren von ' | ' bis zum Ende
      end;
    CloseFile(TextFile);
  end;


Xion

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: So 14.10.07 17:14 
ah ich kannte den Pos befehl nicht, vielen dank
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: So 14.10.07 17:44 
Titel: mhm
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure ReadFile(FileName: String);
var TextFile: Text; S: String;
begin
  Assign(TextFile,FileName);
  ReSet(TextFile); //zum Schreiben ReWrite(TextFile);
  while not EoF(TextFile) do //EoF=EndOfFile
   begin
     ReadLn(TextFile,S); //die Zeile der Datei wird gelesen (in S)
     SetLength (VokabelListe,Length(VokabelListe)+1);
     VokabelListe[High(VokabelListe)].Fremdwort:=Copy(S,1,Pos(' | ',S)-1); //Kopieren von Anfang bis nach ' | '
     VokabelListe[High(VokabelListe)].Bedeutung:=Copy(S,Pos(' | ',S)+Length(' |'),Length(S)); //Kopieren von ' | ' bis zum Ende
   end;
    CloseFile(TextFile);
end;


aus irgendeinem grund schreibt er nix in den array?
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 14.10.07 17:52 
das ist komisch...ruft er die while schleife nie auf?

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: So 14.10.07 18:07 
Titel: fehler
Tut mir leid war ein Fehler in der Datei funktioniert soweit super vielen dank, kann mir jetzt noch vielleicht einer sagen wie das event heisst wenn man ein ListBox eintrag makiert bzw man den "Index" der markierten datei herrausfinden kann?