Entwickler-Ecke

Dateizugriff - aus TXT-Datei Tchart erstellen


McDelphie - Do 28.08.03 14:49
Titel: aus TXT-Datei Tchart erstellen
Bin n richtiger Anfänger und versuch aus ner TXT Datei einen Chart zu erstellen.

Die TXT-Datei sieht so aus:

1 (Count)
1 (Kind: 1 für Low, 2 für High)
296 (Time)
2
2
4508
3
1
9026
4
2
13966
5
1
34740
6
138877




Und da hab ich mir gedacht, dass das irgendwie so funzen muss:




Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button1Click(Sender: TObject);

var i: Integer; Time: Longint; Kind: Byte; LoadFile: Textfile;
    a,b,c: string;
begin
  Assignfile(LoadFile,'C:\TestA.txt');
  Reset(LoadFile);
  while not EOF(LoadFile) do
  begin
    Readln(LoadFile,a);
    i:=StrToInt(a);
    Readln(LoadFile,b);
    Kind:=StrToInt(b);
    Readln(LoadFile,c);
    Time:=StrToInt(c)
  end;
  begin
    Series1.Clear;
    Series1.ADDXY(Time,Kind,
    FloattostrF((Time),ffFixed,6,6));
  end;
end;
end.


Oh hab da vielleicht daneben gelegen. Hat einer nen guten Tip...wie schon erwähnt für´nen Anfääänger...Danke


Teutobod - Do 28.08.03 15:31

Hallo!

Was bekommst du denn für eine Fehlermeldung? Oder was genau ist mit der Funktion? Hast du die gemacht?

mfg Teutobod


McDelphie - Fr 29.08.03 09:21

Teutobod hat folgendes geschrieben:
Hallo!

Was bekommst du denn für eine Fehlermeldung? Oder was genau ist mit der Funktion? Hast du die gemacht?

mfg Teutobod



Hi,

da freu ich mich aber,dass sich einer die Mühe macht und da ma helfen will.
Hab da noch mal was geändert, was aber noch nicht hundertprozentig funktioniert. Hier mal der ganze Quellcode:


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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Chart1: TChart;
    Series1: TPointSeries;
    Series2: TPointSeries;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Time: Longint; Kind: Byte; LoadFile: Textfile;
  a,b,c: string;
begin
  begin
    AssignFile(Loadfile,'C:\Test1A.txt');
    Reset(Loadfile);
repeat
    Readln(Loadfile,a);
    if a='' then exit;
    Readln(Loadfile,b);
    Kind:=Strtoint(b);
    Readln(Loadfile,c);
    Time:=Strtoint(c);
    begin
      Series1.AddXY(Time,Kind,FloattostrF((Time),ffFixed,6,6));
    end;
until a='';
    closefile(Loadfile);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
   Time: Longint; Kind: Byte; LoadFile: Textfile;
   a,b,c: string;
begin
  AssignFile(Loadfile,'C:\Test1B.txt');
  Reset(Loadfile);
repeat
    Readln(Loadfile,a);
    if a='' then exit;
    Readln(Loadfile,b);
    Kind:=Strtoint(b);
    Readln(Loadfile,c);
    Time:=Strtoint(c);
    begin
      Series2.AddXY(Time,Kind,FloattostrF((Time),ffFixed,6,6));
    end;
until a='';
    closefile(Loadfile);
end;
end.



Er compiliert mir das Ding ohne zu meckern. Wenn ich es dann ausprobiere bekommen ich nur die erste Serie. Die zweite bleibt verschwunden.

Ist evtl. ein weiterer Button notwendig, oder geht das auch so?


Gruß

Hanno


McDelphie - Fr 29.08.03 09:41
Titel: Habs hinbekommen
O.K. erst mal richtig probieren, dann fragen stellen...


:autsch:


kongreddgrass - Fr 29.08.03 21:28

In Deinem Code hast du ein begin zuviel, oder habe ich nicht genau hingeschaut


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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
unit Unit3;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type
 TForm1 = class(TForm)
  Button1: TButton;
  Button2: TButton;
  Chart1: TChart;
  Series1: TPointSeries;
  Series2: TPointSeries;
  Button3: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure Button3Click(Sender: TObject);
 private
  { Private-Deklarationen }
 public
  { Public-Deklarationen }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 Time: Longint; Kind: Byte; LoadFile: Textfile;
 a,b,c: string;
begin
AssignFile(Loadfile,'C:\Test1A.txt');
  Reset(Loadfile);
repeat
  Readln(Loadfile,a);
  if a='' then exit;
  Readln(Loadfile,b);
  Kind:=Strtoint(b);
  Readln(Loadfile,c);
  Time:=Strtoint(c);
end;
  begin
   Series1.AddXY(Time,Kind,FloattostrF((Time),ffFixed,6,6));
  end;
begin
until a='';
  closefile(Loadfile);
 end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Time: Longint; Kind: Byte; LoadFile: Textfile;
  a,b,c: string;
begin
 AssignFile(Loadfile,'C:\Test1B.txt');
 Reset(Loadfile);
repeat
  Readln(Loadfile,a);
  if a='' then exit;
  Readln(Loadfile,b);
  Kind:=Strtoint(b);
  Readln(Loadfile,c);
  Time:=Strtoint(c);
  begin
   Series2.AddXY(Time,Kind,FloattostrF((Time),ffFixed,6,6));
  end;
until a='';
  closefile(Loadfile);
end;
end.


Oder wenns doch nicht ist,dann wüsste ich auch nichts.

Gruß
Mike