Autor Beitrag
daywalker0086
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243


Delphi 2005 Architect
BeitragVerfasst: Di 15.03.11 13:39 
Ich mal wieder,
ich habe ein Problem mit dem Auslesen einer Textdatei.
So lese ich die Datei aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TEinstellenForm.BtnsendClick(Sender: TObject);

begin
    sl := TStringList.Create;
    sl.LoadFromFile(TxtPfad);
    s:=0;
    l:=1;
    showmessage(inttostr(sl.Count));
    SerialPortNG1.Active:= True;
end;

procedure TEinstellenForm.SerialPortNG1RxClusterEvent(Sender: TObject);
begin
//showmessage(sl[l]);
if l < sl.Count then
begin
EinstellenForm.SerialPortNG1.SendString(sl[l]);
ListBox1.items.add(sl[l]);
SerialPortNG1.ClearRxDQueue;
end;
l:=l+2;

end;


Das funktioniert soweit erstmal , also die Stringlist enthält dann auch die Daten.
Jetzt aber das Problem:
MB   FeuererhaltungŒ
So stehen die Daten in dem Textfile(nochmal angehängt)
4D421300010008204665756572657268616C74756E67068C
MB  Vorw„rmphase .
4D4213000100092020566F727784726D706861736520062E
MB  Znden M
4D42130001000A20202020205A816E64656E20202020044D
MB  Fehlzndung Ä
4D42130001000B20204665686C7A816E64756E67202005C4

Es soll nur jede zweite Zeile gesendet werden.
Er sucht sich beim Auslesen der Textdatei warscheinlich das Zeichen $0A als Zeilenende Indikator.
Das ist aber bei mir ein Zeichen im String und so kommt es eben vor das er in de rZzeile verrutscht und dann Mist sendet.
Gibts da ne Möglichkeit das anders zum machen? Das Zeilenende ist durch die 2 Byte Checksumme gekennzeichnet also zum Beispiel 068C, das sind einfach alle Bytes aufsummiert.

Joa falls wer ne Idee hat, her damit.
Grüße Christian
Einloggen, um Attachments anzusehen!
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 15.03.11 14:52 
Verwechsle bitte nicht die Darstellung eines Strings in der Listbox oder in einem TString.
mit den Senden von Daten.
Beim einlesen der Datei werden Steuerzeichen nun mal auch so behandel und sind nicht sichtbar.
So das Deine Darstellung durch aus falsch aussehen kann, aber die Daten richtig gesendet werden.
Es liegt nun an Dir das ganze Byteweise zu machen bzw zu kennzeichnen was Steuerzeichen sind für die Darstellung.
Darum list man solche Dateien auch nicht als string aus.

Gruss alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!