Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateien auslesen (https://www.delphipraxis.net/117112-dateien-auslesen.html)

delphi_noob666 11. Jul 2008 18:11


Dateien auslesen
 
Hallo,

hab probleme beim auslesen einer datei.
folgender code:

Delphi-Quellcode:
  While not EOF(f1) do begin
      Readln(f1,s);
      k := Length(s);
      Match_ID.Text := IntToStr(j);
      Matchdate.Text := Copy(s,1,8);
      i := Pos(' ', s);
      q := Pos(':', s);
      Home_Team.Text := Copy(s,i+1,(q-1)-i);
      i := Pos(':', s);
      Out_Team.Text := Copy(s,i+2,(k-3)-(i+2));
      Home_Goals.Text := Copy(s,k-3,1);
      Out_Goals.Text := Copy(s,k-1,1);
      DBNavigator1.BtnClick(nbInsert);
      j := j+1;
  end;
Problem: Die erste Zeile wird übersprungen.
Hinweis: Die Daten sollen an eine Datenbank übergeben werden...
hier noch ein kleiner auszug aus der datei

10.08.07 VfB Stuttgart : FC Schalke 04 2:2
11.08.07 FC Bayern München : F.C. Hansa Rostock 3:0
11.08.07 VfL Bochum 1848 : Werder Bremen 2:2

eintrag in die edit-felder 1.datensatz: 11.08.07 FC Bayern München : F.C. Hansa Rostock 3:0

Vielen Dank im voraus

DeddyH 11. Jul 2008 18:15

Re: Dateien auslesen
 
Zeig mal die ein oder zwei Zeilen vorher.

P.S.: Willkommen in der DP :dp:

delphi_noob666 11. Jul 2008 18:17

Re: Dateien auslesen
 
Code:
var f1 : Textfile;
    s : String;
    i, j, k, l, m, q, r : Integer;
    str : boolean;
begin
      r:=1;
     j := 0;
  AssignFile(f1,'..\Saison.txt');
  Reset(f1);
  if FileExists('..\Saison.txt') then begin
     While not EOF(f1) do begin
das sind die zeilen davor

DeddyH 11. Jul 2008 18:21

Re: Dateien auslesen
 
Außer einer fehlenden Fehlerbehandlung kann ich auf den ersten Blick nichts erkennen. Wie äußert sich das "Überspringen" denn genau?

delphi_noob666 11. Jul 2008 18:23

Re: Dateien auslesen
 
Alle Datensätze werden eingelesen, nur die erste Zeile eben nicht.
Ansonsten funktioniert die Schleife tadellos!

DeddyH 11. Jul 2008 18:25

Re: Dateien auslesen
 
Hast Du mal versucht, statt des Klicks auf einen Navigator-Button die Daten direkt einzutragen (z.B. über die Methode Insert von TDataset)?

delphi_noob666 11. Jul 2008 18:36

Re: Dateien auslesen
 
Leider ist es mir momentan noch nicht möglich mit diesen Befehlen zu arbeiten. Bis jetzt haben wir das
nur mit dieser Navileiste gemacht. einen tdataset habe ich nicht gefunden. und der tibdataset beinhaltet keinen insert befehl.
danke aber schonmal für die mühe

DeddyH 11. Jul 2008 18:38

Re: Dateien auslesen
 
Sonst setz doch mal einen Breakpoint auf die Zeile
Zitat:

Delphi-Quellcode:
DBNavigator1.BtnClick(nbInsert);

und sieh nach, was da passiert. Ich glaube nicht, dass es am Auslesen der Datei liegt.

delphi_noob666 11. Jul 2008 18:44

Re: Dateien auslesen
 
also ich weiß jetzt wo der fehler liegt, die datensätze werden erst beim zweiten aufruf von btnclick
eingetragen, den grund dafür weiß ich aber nicht.

die elemente sind alle vom typen tib...

gibt es eine möglichkeit ohne die dbedit felder direkt die daten in eine tabelle zu schreiben?
z.b. insert --> TABELLE.SPALTE(inhalt)

Hansa 11. Jul 2008 18:46

Re: Dateien auslesen
 
Du gehst ja auch falsch vor.

Richtig wäre es so (Pseudocode) :

Delphi-Quellcode:
assign...
reset...
// ioresult nicht vergessen !!
readln (f1...
while not EOF...
...// verarbeiten
  readln (f1...
end;
So, das wars dann für die Woche...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 1 von 2  1 2      

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