Autor Beitrag
jamany
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73



BeitragVerfasst: Fr 14.03.03 11:56 
Über
ausblenden Quelltext
1:
tvolumen := IdHTTP1.Get('http://localhost/test.php?s=0');					


erhalte ich den Inhalt der test.php-Datei. Der sieht so aus, dass je Zeile ein Datensatz getrennt durch ein Semikolon übergeben wird. In der ersten Zeile sind die Spalten bezeichnet.

Wie kann ich nun diese Daten in eine Paradox-Tabelle speichern?

Eine Antwort mit Beispiel und/oder evtl. Source wäre echt super, weil ich das ganze zum ersten Mal mache und absolut keine Ahnung habe...

Danke!
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 14.03.03 19:41 
hi,
du erhälst eine "Textzeile" zurück, also die als erstes in einem String sichern:
ausblenden Quelltext
1:
2:
3:
4:
var
  S:String;
  S := IdHTTP1.Get('http://localhost/test.php?s=0'); 
  ...


Nun enthält der String S z.b. "Spasskasse;44444444;4343433"
als nächstes musst du diesen String zerlegen und ggf. eine Typumwandlung machen, damit die Werte korrekt in die Tabelle übernommen werden. (In Diesem Beispiel nehmen wir mal eine Kontoverbindung).
Feld 1 in Tabelle: Bankname - Zeichenkette
Feld 2 in Tabelle: Kontonummer - Integer
Feld 3 in Tabelle: Bankleitzahl - Integer;
also machen wir folgendes (geht auch kürzer, der Lesbarkeit etwas mehr):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  xBN: String;
  xKtn: Integer;
  xBlz: Integer;
  S: String; // der von oben
...
   S:=.... // siehe oben
   xBN:= Copy(S,1,Pos(';',S)-1); // alles von S[1] bis S[;]-1 kopieren
   Delete(S,1,Pos(';',S)); // Jetzt den Banknamen incl. ";" löschen
   xKtn:= StrToInt(Copy(S,1,Pos(';',S)-1)); // wie oben, nur noch Typumwandlung
   Delete(S,1,Pos(';',S)); // Jetzt die KtNr incl. ";" löschen
   xBlz:= IntToStr(Copy(S,1,Pos(';',S)-1));
  // Jetzt die Paradox-Tabelle füllen
  Tabelle.Append;
  TabelleFieldBN.Value:= xBN;
  TabelleFieldKtn.Value:= xKtn;
  TabelleFieldBlz.Value:= xBlz;
  Tabelle.Post;

Ich hoffe, nichts vergessen zu haben - auf die schnelle nicht geprüft und einfach in Forum gehackt.
Grüße
MSCH
jamany Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73



BeitragVerfasst: Fr 14.03.03 21:23 
Vielen Dank für die ausführliche Antwort!
Hat mir trotz allem sehr geholfen.

Aber ich habe nicht nur einen String?
Ich habe eher sowas:

Bank;BLZ;Konto
Bank1;12345;67867
Bank2;4738274;349230480923
Bank3;sflkdsf;jslfkjfds

Also in der ersten Zeile die Bezeichnung für die Spalten und in den Zeilen danach die entsprechenden Werte. Aber ich habe mehr als eine Zeile...
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 14.03.03 21:43 
gaaanz einfach,
erste Zeile: ignorieren
S:= 'erste Zeile'#10'zweite Zeite'#10'Dritte Zeile';

Du musst nur die Zeilen aufspalten indem du noch nach #10 (oder #13 :?: ) suchst. Dann analog wie oben beschrieben.
Grüße
MSCH