Guten Tag alle zusammen... ich bin neu hier und kenne mich mit der Programmsprache noch nicht allzu gut aus.
Ich habe die Aufgabe bekommen, eine gegeben .txt datei(Tabelle) als Grafik mit Hilfe von TAChart auszugeben.
Mein Problem ist jetzt aber, dass es ja alles recht neu scheint und es keine vernünftigen Tutorials dazu gibt. Das einzige Tutorial , welches ich gefunden habe war dieses
http://wiki.lazarus.freepascal.org/TACh ... hartSource
Problem hierbei ist nur Leider, dass die Quelldatei von einen externen internet Seite kommt, die Down ist-.-
Ich wüsste also gerne, wie die txt datei aufgebaut sein muss, damit diese eingelesen werden kann, und wie wir dies geht
Danke schon mal im Vorraus!
MfG Chris
Tabelle/txt datei bei TAChart einlesen und wiedergeben
Re: Tabelle/txt datei bei TAChart einlesen und wiedergeben
Hallo Chris,
erstmal ein Hallo im Forum.
Tutorials sind dafür Mangelware, dafür sind im Lazarus-Ordner diverse Beispiele enthalten (lazarus/components/tachart/demo). Auch im Forum wurden TACharts schon öfters behandelt. Siehe auch http://wiki.freepascal.org/TAChart_documentation
Hier http://www.lazarusforum.de/viewtopic.php?p=28554#p28554 ist auch ein einfaches Bsp.
erstmal ein Hallo im Forum.
Tutorials sind dafür Mangelware, dafür sind im Lazarus-Ordner diverse Beispiele enthalten (lazarus/components/tachart/demo). Auch im Forum wurden TACharts schon öfters behandelt. Siehe auch http://wiki.freepascal.org/TAChart_documentation
Hier http://www.lazarusforum.de/viewtopic.php?p=28554#p28554 ist auch ein einfaches Bsp.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Tabelle/txt datei bei TAChart einlesen und wiedergeben
Ganz unten auf der genannten Seite findet man den Link "Categories: Tutorials" - der führt zu den Lazarus Tutorials. Das ist eine ganze Menge! Unter "T" findest du die anderen Tutorials über TAChart - Tutorials sind also keineswegs "Mangelware".
Die in dem Tutorial verlinkte Daten-Datei war eben online.
Dein Problem scheint mir aber generell der Dateizugriff zu sein: Wie holt man die zu plottenden Daten aus einer Text-Datei? Das hat nichts mit TAChart zu tun. TAChart selbst liest gar keine Dateien, das musst du schon selbst machen. Daher ist die Frage, wie eine Datei aufgebaut sein muss, damit man sie plotten kann, hinfällig.
Da ich deine Datei nicht kenne, muss ich mir hier etwas ausdenken: Nehmen wir an, deine x und y-Werte sind zeilenweise und mit einem Strichpunkt getrennt in der Datei abgelegt, also z.B. so
1;10
1,1;9
2,0;8
3,5;10
4;11
5;13
Diese Datei musst du zeilenweise in einen String (s) einlesen (ich hoffe, du weißt, wie das geht...), und jeden String jeweils am Strichpunkt auftrennen: also mit "pos" den Strichpunkt suchen (p := pos(';', s);), den vorher liegenden Text herauskopieren und in eine Zahl für x umwandeln (x := StrToFloat(copy(s, 1, p-1))), und genauso mit dem hinter dem Strichpunkt liegenden Teil (y := StrToFloat(copy(s, p+1, Length(s))). Dann fügst du diese x/y-Werte einfach deiner ChartSeries hinzu: Chart1LineSeries1.AddXY(x, y). Falls du die verwendeten Befehle nicht kennst: Lazarus hat auch eine online-Hilfe.
Geht natürlich auch anders und effizienter.
In dem Tutorial z.B. wird eine UserDefinedChartSource verwendet - das ist sinnvoll, wenn die Daten noch anderswo verwendet werden. Aber für's erste reicht das oben geschilderte Vorgehen.
Die in dem Tutorial verlinkte Daten-Datei war eben online.
Dein Problem scheint mir aber generell der Dateizugriff zu sein: Wie holt man die zu plottenden Daten aus einer Text-Datei? Das hat nichts mit TAChart zu tun. TAChart selbst liest gar keine Dateien, das musst du schon selbst machen. Daher ist die Frage, wie eine Datei aufgebaut sein muss, damit man sie plotten kann, hinfällig.
Da ich deine Datei nicht kenne, muss ich mir hier etwas ausdenken: Nehmen wir an, deine x und y-Werte sind zeilenweise und mit einem Strichpunkt getrennt in der Datei abgelegt, also z.B. so
1;10
1,1;9
2,0;8
3,5;10
4;11
5;13
Diese Datei musst du zeilenweise in einen String (s) einlesen (ich hoffe, du weißt, wie das geht...), und jeden String jeweils am Strichpunkt auftrennen: also mit "pos" den Strichpunkt suchen (p := pos(';', s);), den vorher liegenden Text herauskopieren und in eine Zahl für x umwandeln (x := StrToFloat(copy(s, 1, p-1))), und genauso mit dem hinter dem Strichpunkt liegenden Teil (y := StrToFloat(copy(s, p+1, Length(s))). Dann fügst du diese x/y-Werte einfach deiner ChartSeries hinzu: Chart1LineSeries1.AddXY(x, y). Falls du die verwendeten Befehle nicht kennst: Lazarus hat auch eine online-Hilfe.
Geht natürlich auch anders und effizienter.
In dem Tutorial z.B. wird eine UserDefinedChartSource verwendet - das ist sinnvoll, wenn die Daten noch anderswo verwendet werden. Aber für's erste reicht das oben geschilderte Vorgehen.
Re: Tabelle/txt datei bei TAChart einlesen und wiedergeben
Ja habe das mit der Datei jetzt auch gesehen, dass die wieder online ist... hatte wohl genau den falschen Zeitpunkt erwischt
Danke ich werds jetzt mal probieren!
Danke ich werds jetzt mal probieren!