![]() |
Zuweisungen Variablen, Array?
Hallo zusammen, erst mal einen wunderschönen Dienstag, haben es ja bald geschafft, das We ist zum greifen nah
Think positiv. Folgendes Problem, habe ien Programm geschrieben das einen Com Port ausliest und mir einen Zahlenwert aus einem String ausschneidet. Es werden mehrere Zahlenwerte ausgelesen und ich würde diese gerne in variablen speichern, weil ich die letzten beiden auf >=10 vergleichen möchte um eine schleife zu beenden. Habe gedacht das ich diese mit einem array versuche, aber leider funktioniert das nicht so. Irgendwo ist in dem array eine falsche Zuweisung. Vielleicht habe ich das acuch falscg generiert, keine Ahnung, HILFE
Delphi-Quellcode:
Nochmal das ganze Zusammengefaßt:
procedure TForm1.DateieinlesenClick(Sender: TObject);
var Liste : TStringList; i,x, data_length, firstnumber, lastnumber, result, value, differenzwert : Integer; hilftext, data, filename, last_value : String; prdwerte : array of integer; begin liste :=tstringlist.create; if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen } begin filename := OpenDialog1.FileName; try Liste.LoadFromFile(filename); for i := 0 to Liste.Count-1 do begin {comport komplett leerlesen} while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen} begin Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen} end; data := ''; apdcomport1.putstring(Liste[i]); {Übermittelt Daten aus Com1} apdcomport1.putstring(#13); { Bestätigung des ersten Befehles loeschen } while (pos('>',data) = 0) do while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen} begin Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen} end; data := ''; repeat apdcomport1.putstring('prd'); apdcomport1.putstring(#13); { Zeichen einlesen bis Endzeichen ">" } while (pos('>',data) = 0) do while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen} begin Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen} end; begin firstnumber := 0; lastnumber := 0; hilftext := ''; {Ermittlung der Zahlenposition} while (firstnumber < Length(data)) and not (data[firstnumber] in ['1'..'9','0']) do Inc(firstnumber); lastnumber := firstnumber; {auslesen und speichern der Zahlen} while (lastnumber < Length(data)) and (data[lastnumber] in ['1'..'9','0']) do begin hilftext := hilftext + data[lastnumber]; Inc(lastnumber); end; value:=StrToInt(hilftext); memo1.text := memo1.text + IntToStr(value); // {speichern der Zahlenwerte in einem Array} Setlength(prdwerte,length(prdwerte)+length(hilftext)); data_length:=length(hilftext); for x:=1 to data_length do begin prdwerte[Length(prdwerte) - Length(hilftext)+ x] := strtoint(hilftext[x]); end; end; until differenzwert<=10; end; finally Liste.Free; end; end; end; "Ich frage einen com port ab und speicher diesen wert in der Variablen value ab. Jetzt soll die schleife nochmals durchlaufen und der com port wird nochmal abgefragt, der neue wert soll z.b. in der variablen value_new abgespeichert werden. Jetzt habe ich zwei Variablen, diese beiden würde ich gerne auf <=10 vergleichen, falls es der fall ist, soll die repaet until schleife beendet werden, falls nicht, soll ein weiterer wert ausgelesen werden, diesem eine neue variable zugewiesen werden und diese neue mit der letzten, also value_new auf <=10 verglichen werden, und immer weiter so bis die Bedingung erfüllt ist und die Schleife somit beendet werden kann. " Wäre echt nett wenn jemand ne Idee hat. Vielleicht habe ich auch den total falschen Programmier Ansatz gewählt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz