Hallo Leute ich bin ein absoluter Newbe in Sache Delphi.
Ich habe vor kurzem angefangen ein Tool zu schreiben. Und bin doch schon erstaunlich weit gekommen.
Ich habe nun zwei Fragen und bitte Euch mir dies nicht übel zu nehmen.
Ich habe zwar gesucht aber nichts passendes bisher gefunden, dass mir direkt weiter hilft.
1 Frage:
ich habe am ComPort folgende ausgabe:
AT+CPBR=1
+CPBR: 1,"+49179xxxxxxx",145,"Wxxm Bxxl"
OK
AT+CPBR=2
+CPBR: 2,"+49171xxxxxxx",145,"Pxxxxxf Axxxxxs"
OK
AT+CPBR=3
+CPBR: 3,"+49160xxxxxxx",145,"Axxxxxxn Mxxxxxxn"
OK
Nun möchte ich folgende Daten in ein Array of String aufnehmen:
aus : +CPBR: 3,"+49160xxxxxxx",145,"Axxxxxxn Mxxxxxxn"
array1[1] := 3
array2[1] := +49160xxxxxxx
array3[1] := 145
array4[1] := Axxxxxxn Mxxxxxxn
ich habe mir gedacht mit copy(daten,8,1) usw aber die stellen können sich ändern.
also muss ich aus der Zeile nach einem String suchen der sich in ""
befindet und nach einem String der sich vor einem , befindet
Leider habe ich überhaupt keine Lösung oder eine Idee oder Ansatz parat wie ich das machen soll.
Frage Nr 2.
Ich habe ein Problem mit meiner Schleife
mein Quelltext sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button4Click(Sender: TObject); var s: integer; begin
for s:=1 to 100 do begin SerialPortNG1.SendString('AT+CPBR='+inttostr(s)+ #13+#10); sleep(1000); edit1.Text:=serialportng1.ReadNextClusterAsString;
end; end; |
ich sende Daten an comport an dem ein handy dran ist das soll die einträge des telefonbuches auslesen.
wenn ich die schleif erichtig verstehe dann sollte er doch die schleife mit s = 1 anfangen. dann sendet er den befahl an das modem wartet 1 sekunde liest das was das modem ausgibt aus und schreibt das in das edit1-feld. und macht dann die schleif nochmal und das solange bis er bei 100 (bzw 101) ist.
Doch das Problem ist ich habe den eindruck dass er aber nicht diese 1 sekunde abwartet sondern die schleife sofort 100 mal ablaufen läßt.
denn wenn ich in der schleife einfach nur den wert der s variable in ein labelfeld eintragen lasse dann sehe ich nicht wie er hochzählt sondern das dauert genau 100 sekunden und dann steht im label feld plötzlich 100 drin.
was mache ich falsch in der schleife.
so nun genug getextet.
danke schon mal im voraus
und wie gesagt nicht böse sein ich bin ein anfänger
gruß delphidepp