Autor Beitrag
skall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 25.01.09 16:37 
Schön guten Tag,

ich versuche verzweifelt Werte, die ich aus einer .dat Datei ausgelesen habe Varriablen zuzuordnen. Habe zwischen drin mal öfters eine ShowMessage eingebaut um den hinterlegten Wert zu überprüfen... Aber iwann tut sich da nichts mehr...

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:
procedure DatenEinlesen (D:string; s: TStundenMittel; M:TDatenSatz);
  var TextDatei : TextFile;
      buffer, Volt, NullWert, Minute, Stunde : string;
begin
  AssignFile(TextDatei, D + '.dat');
  FileMode := fmOpenRead;
  Reset(TextDatei);
    while not Eof(TextDatei) do
      begin
      ReadLn(TextDatei, buffer);
        begin
          Volt := Copy(buffer, 1, Pos(#9, buffer) - 1);
          Delete(buffer, 1, Pos(#9, buffer));
          NullWert := Copy(buffer, 1, Pos(#9, buffer) - 1);
          ShowMessage(buffer);
          Delete(buffer, 1, Pos(#9, buffer));
          ShowMessage(buffer);
          Stunde := Copy(buffer, 1, Pos(#9, buffer) -1 );
          ShowMessage(buffer);
          Delete(buffer, 1, Pos(#9, buffer));
          ShowMessage(buffer);
          Minute := Copy(buffer, 1, Pos(#9, buffer) - 1);
        end;
      ShowMessage(Volt + ' ' + NullWert + ' ' + Stunde + ' ' + Minute);
      end;
  Closefile(TextDatei);
end;


Also:
Die ausgelesenen Werte sind: 283 0 7 0
Unter Volt wird dann ja 283 hinterlegt.
Unter dem NullWert die 0.
Ab dann tut sich nichts mehr.

Unter der Varriablen buffer bleiben die Werte 7 0 hinterlegt und werden weder in die Varriablen abgespeichert, noch gelöscht.

Bitte um einen kleinen Tipp :) bin langsam echt mit meinem begrenztem Latein am Ende.

Edit: Vllt liegt es ja daran, dass ich ja versuche iwie den Bereich bis zum nächten Tab zu kopieren... Ich glaube da ist ja gar kein Tab bei den letzten beiden Ziffern... Aber kann mir dann jemand mal sagen wie ich das anders machen kann? :o
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 25.01.09 19:16 
user profile iconskall hat folgendes geschrieben Zum zitierten Posting springen:
Die ausgelesenen Werte sind: 283 0 7 0

Alles zwischen dem zweiten begin und dem zweitletzten end ersetzen durch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Read(TextDatei, Volt);
Read(TextDatei, NullWert);
Read(TextDatei, Stunde);
Read(TextDatei, Minute);

und Typ von Volt, NullWert, Stunde und Minute ersetzen durch Integer oder Float-Typ. Alternativ mit einer Explode Funktion oder TStringList+Delimiter/DelimitedText auseinandernehmen.

//Edit: Zusammengefügt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  TextDatei: TextFile;
  Volt, NullWert, Minute, Stunde: Extended;
begin
  AssignFile(TextDatei, D + '.dat');
  Reset(TextDatei);
  while not Eof(TextDatei) do
  begin
    Read(TextDatei, Volt);
    Read(TextDatei, NullWert);
    Read(TextDatei, Stunde);
    Read(TextDatei, Minute);
    ShowMessage(Format('%.3f %.3f %.3f %.3f',[Volt, NullWert, Stunde, Minute]));
  end;
  CloseFile(TextDatei);
end;
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Di 27.01.09 10:27 
Mit Read liest er bei mir iwie die ganze Zeile aus...
Ich hab schon mit Read(TextDatei, Volt) die ganze Zeile abgespeichert....

Ausserdem liefert er mir nur jede zweite Zeile...
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 27.01.09 12:25 
Nur wenn Volt ein string ist, liest er die ganze Zeile aus.