hi all
Bis jetzt bin ich sehr gut mit der Board suche durchgekommen. wenn ihr einen eintrag zur Lösung von meinem Problem findet, lasst es mich wissen
.
Ich schicke jeweils immer eine Zeile aus einer .txt durch die serielle Schnittstelle. (USB/RS232
)
Nun würde ich gerne durch eine Progressbar Anzeige die Dauer der Übertragung anzeigen lassen.
Nur wie bekomme ich die Grösse der gesendet Daten?
Da ich es über writeln mache. Mit Blockwrite wäre es ja kein Problem.
Ein bisschen Code dazu
Delphi-Quellcode:
begin
SerialPortNG1.ClearRxDQueue; //löscht die Windowsempfangsqueue
// Damit nur die aktuellsten Werte ausgelesen werden
pause (500); // *Gähn* auf Queue warten
abort := false;
try
Assignfile(f, NameEdit.Text);
Reset(f);
except
on EinOutError Do
ShowMessage('Datei Öffnen fehlgeschlagen');
end;
Fileisopen := true;
FSize := FileSize(f);
AbortBtn.Enabled := true;
SendBtn.Enabled := false; //Disable the Send Button prevent multiple Sending
ReadLn(f, Info); //First Entry Info?
info := Copy(info,1,4);
Progressbar1.Max := FSize;
while not EOF(f) or abort = true do
begin
if not (info = 'Info') then
begin
Readln(f, Sendbuffer);
SerialPortNG1.SendString(sendBuffer + #13#10); // Send String
while SerialPortNG1.SendInProgress do
begin
Application.ProcessMessages;
end;
ifread := Copy(sendBuffer,3,1); //Must be Read??
if (ifread = '1') then
begin
pause(20);
read := SerialPortNG1.ReadNextClusterAsString();
rSlave := Copy(read,1,2);
rData := Copy(read,13,4);
rAddress := Copy(read,9,4);
ListenZeile := (rSlave+' '+rAddress+' '+rData);
ListBox2.Items.Add(ListenZeile);
end;
end //if Info
else
begin
info := ':-)';
end;
end; //While
CloseFile(f);
end;
Naja hab mit delphi/programmieren erst angefangen
Wenn wir schon dabei sind, euch ist sicher auf der 5. letzten Zeile das "
" aufgefallen, hat jemand ne andere Idee?
Ich hoffe ich habe es verständlich formuliert
Danke für die Hilfe
grz Selecta