![]() |
Wie viel wurde schon geschrieben? Progressbar
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:
Naja hab mit delphi/programmieren erst angefangen :duck:
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; Wenn wir schon dabei sind, euch ist sicher auf der 5. letzten Zeile das ":-)" aufgefallen, hat jemand ne andere Idee? :-D Ich hoffe ich habe es verständlich formuliert :| Danke für die Hilfe grz Selecta |
Re: Wie viel wurde schon geschrieben? Progressbar
Zitat:
Du hast doch deine jeweils eingelesene Textzeile in einem String. Dessen Länge kannst du doch bestimmen (length). |
Re: Wie viel wurde schon geschrieben? Progressbar
Jep, das stimmt schon.
aber mit Filesize() bekomme ich ja die Grösse in Byte an. und dann kann ich ja die länge nicht gebrauchen, oder schon ? |
Re: Wie viel wurde schon geschrieben? Progressbar
Nun ja, ein Byte entspricht einem Zeichen.
|
Re: Wie viel wurde schon geschrieben? Progressbar
nun ja, wenn das so ist.
DANKE Die gelesene Zeile + 2 für das CR und LF. kewl, dankeschön Vielleicht könnt ihr mir noch mehr helfen. Es Soll ein Pfadname eingeben und eine Datei mit der Endung .txt erzeugt werden. Wenn der User jetzt aber keine Endung oder eine andere Endung angibt. Soll die Endung auf .txt geändert werden.
Delphi-Quellcode:
Bei ExtractFileExt bekomme ich aber nichts zurück :(
begin
if nameedit.Text = '' then begin Showmessage('No Path in Makroname:'); exit; end; Fileext := ExtractFileExt(nameedit.Text); if not (Fileext = '.txt') then begin Changefileext(nameedit.Text,'.txt'); if Fileext = '' then nameedit.text := nameedit.text + '.txt'; end; |
Re: Wie viel wurde schon geschrieben? Progressbar
Delphi-Quellcode:
Und nächstes mal: Neue Frage, neuer Thread ;-)
If ExtractFileExt(Editname.Text) <> '' then
Blabla.SaveToFile(EditName.Text) else BlaBla.SaveToFile(EditName.Text+'.txt'); |
Re: Wie viel wurde schon geschrieben? Progressbar
Zitat:
Ansonsten: Neue Frage, neuer Thread. |
Re: Wie viel wurde schon geschrieben? Progressbar
danke
Es gibt schon viele threads und solange der thread noch in den 10 neusten ist, wird sicher einer mit genügend Kentnissen drüberstolpern und mir eine lösung geben :-D |
Re: Wie viel wurde schon geschrieben? Progressbar
Nein. Erstell bitte für jede neue Farge einen neuen Thread. Erstens damit es hier nicht drunter und drüber geht und zweitens damit das Topic noch was mit dem besprochenen Problem zu tun hat und so die Suche erleichterent, wenn man was bestimmtes sucht.
Aus diesem Grund: G E S C H L O S S E N |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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