Autor Beitrag
roblpz
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 06.06.05 12:01 
Wie finde ich den wert für eof ?

unser Programm soll einen String suslesen (klappt) und diesen dann in records speichern. das Problem dabei ist das die For-Schleife nur 8 oder 16 Werte ausgibt und nicht bis zum File-Ende geht. Habt ihr ne idee wo unser fehler liegt ?

lg robert

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
   for i:=3 to length(s)  do  //werte auslesen bis zum ende der datei
       begin
       x[i].startzeit:= copy(s,1,pos(',', s)-1);
       delete(s,1,pos(',',s));
       x[i].name:= copy(s,1,pos(',', s)-1);
       delete(s,1,pos(',',s));
       x[i].pageanzahl:= copy(s,1,pos(',', s)-1);
       delete(s,1,pos(',',s));
       x[i].minHS:= copy(s,1,pos(',', s)-1);
       delete(s,1,pos(',',s));

       end;

end;

  ListBox2.Items.add(a[0]);
  ListBox3.Items.add(a[1]);
  ListBox4.Items.add(a[2]);

  for i:=3 to length(s) do   //werte in die Listbox schreiben
  begin
  ListBox1.Items.add(x[i].startzeit);
  ListBox1.Items.add(x[i].name);
  ListBox1.Items.add(x[i].pageanzahl);
  ListBox1.Items.add(x[i].minHS);
  end;
 
end;


Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Moderiert von user profile iconTino: Titel geändert.
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Mo 06.06.05 12:20 
In der Delphi-Hilfe wird das ganz nett beschrieben.

Einfach mal Eof eintippen und dann auf Beispiel, dann kommt folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
var

  F1, F2: TextFile;
  Ch: Char;
begin
  if OpenDialog1.Execute then begin
    AssignFile(F1, OpenDialog1.Filename);
    Reset(F1);
    if SaveDialog1.Execute then begin
      AssignFile(F2, SaveDialog1.Filename);
      Rewrite(F2);
      while not Eof(F1) do
      begin
        Read(F1, Ch);
        Write(F2, Ch);
      end;
      CloseFile(F2);
    end;
    CloseFile(F1);
  end;

end;


//EDIT: Worauf ich eigentlich hinaus wollte *g* .. Wie lest ihr die Datei ein?

//EDIT: Weil ich grad nochmal drüber geflogen bin.
Ich gehe mal davon aus, dass es sich um eine Textdatei handelt.
Um euch dieses ganze geparse :roll: zu ersparen könntet ihr auch mit einer TStringList reingehen und vorher
den Seperator auf ',' setzen und dann das ganze per MyStringList.Commatext := s zuweisen... Nur n Gedanke..
Ist sicherlich dann leichter für dich zu handeln.

_________________
Stellen Sie sich bitte Zirkusmusik vor.
roblpz Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 06.06.05 12:52 
Danke für deine Hilfe aber irgendwie schauen wir in der Hilfe Funktion nicht so richtig durch wie das gemeint ist !! so lesen wir die Datei aus!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
begin

if OpenDialog1.execute then begin AssignFile (f, OpenDialog1.Filename); end;
read (f);

l:= TStringlist.Create;
l.loadfromfile(OpenDialog1.Filename);
s:=l.text;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Mo 06.06.05 13:07 
z.b.:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
var
  lMyFile  : TextFile;
  lFileName,
  lLine    : string;
  lStrList : TStringList;
begin
  lFileName := 'Datei';
  if OpenDialog.Execute then begin
    lFileName := OpenDialog.FileName;

    if FileExists(lFileName) then begin
      lStrList := TStringList.Create;
      lStrList.Delimiter := ',';

      {$I-} // Ignoriert IO-Fehler (IO-Fehler prüfen wir mit IOResult)
      AssignFile(lMyFile, lFileName); // Vorbereiten
      Reset(lMyFile); // Zugriff
      
      if (IOResult = 0) then begin
        while not Eof(lMyFile) do begin
          Readln(lMyFile, lLine);
        
          lStrList.CommaText := lLine;

          //todo: Code einfügen
        end;
      end;
      CloseFile(lMyFile);
      {$I+}

      FreeAndNil(lStrList);
    end;
  end;
end;


So in etwa.. *aus'm Kopf getippt*

//EDIT: Es wäre Sinnvoll noch Fehlermeldungen einzubauen.

_________________
Stellen Sie sich bitte Zirkusmusik vor.


Zuletzt bearbeitet von opfer.der.genauigkeit am Mo 06.06.05 14:00, insgesamt 1-mal bearbeitet
roblpz Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 06.06.05 13:58 
tausend dank für deine hilfe. hat geklappt .. danke dir *smile*
:D :lol: :lol: :lol: :lol: :lol: :lol: :lol: