Ist die array zuweiseung richtig?
Ich will die werte die mir die variable data gibt in ein fortlaufendes array geben, dabei die letzten zwei aktuellen werte miteinander vergleichen und wenn der unterschied <=10 ist soll die schleife beendet werden, aber irgendwie funktioniert das nicht, wieso?
Hab keine Ahnung mehr
Delphi-Quellcode:
///// Liest eine gewählte Datei ein und sendet die Daten per com 1 an das Endgerät /////
procedure TForm1.DateieinlesenClick(Sender: TObject);
var
Liste : TStringList;
i : Integer;
data :
string;
x : integer;
F: TextFile;
filename :
String;
prdwerte :
array of integer;
differenzwert : integer;
begin
if OpenDialog1.Execute
then { Dialog zum Dateiöffnen anzeigen }
begin
filename := OpenDialog1.FileName;
try
Liste := TStringList.Create;
Liste.LoadFromFile(filename);
for i := 0
to Liste.Count-1
do
begin
// ShowMessage(Liste[i]);
apdcomport1.putstring(Liste[i]);
apdcomport1.putstring(#13);
repeat
apdcomport1.putstring('
prd');
apdcomport1.putstring(#13);
// repeat
//until data = '-->';
Setlength(prdwerte,length(prdwerte)+length(data));
for x:=1
to Length(Data)
do
prdwerte[Length(prdwerte) - Length(Data)] := integer(Data[x]);
//differenzwert := prdwerte[high(prdwerte)-1]-prdwerte[high(prdwerte)];
until abs(x)<=10;
end
finally
Liste.Free;
end;
end;
end;
///// Stellt den Antwortbefehl des Endgerätes auf einem Memo da /////
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
Data:
String;
I: Integer;
begin
data := '
';
for I:= 0
to Count-1
do
Data := data+ApdComPort1.GetChar;
Memo1.text:= data;
end;