K
Hi,
habe vor einem Jahr im Zuge einer Projektarbeit auch damit gearbeitet. Habe mal das Programm rausgekramt. Eventuell hilft dir das weiter. Habe noch ein paar mehr Beispiele, allerdings überblicke ich das Programm nicht mehr so ganz. Habe mich seit einem Jahr nicht mehr damit beschäftigt. Mensch was man nach so einer langen Zeit alles vergisst
Aber ich glaube die for Schleife kannst du dir sparen. Hier mal zwei Beispiele aus meinem Programm. Habe jetzt nicht Editiert, such dir das passende raus.
Gruß
Eddie
Beispiel 1
void __fastcall Tfrm_com_ansteuerung::ComPort3RxChar(TObject *Sender, int Count)
{
//Daten einlesen und ausgeben
AnsiString Str3,daten_com3;
ComPort3->ReadStr(Str3, Count);
daten_com3=daten_com3+Str3;
memo_com3->Lines->Text=daten_com3;
}
Beispiel 2
void __fastcall Tfrm_com_ansteuerung::ComPort6RxChar(TObject *Sender, int Count)
{
AnsiString varWT,WTnr,varWTREPLACE,Str6;
static AnsiString daten_com6="";
ComPort6->ReadStr(Str6, Count); //Empfange String vom ComPort
daten_com6=daten_com6+Str6;
try
{
int pos=daten_com6.Pos("\n"); //Im String nach "CR" und "LF" suchen
if (pos>0)
{
AnsiString ok="0 \n",nio="1 \n";
int laenge = daten_com6.Length(); //Stringlänge einen Integer zuweisen.
if(laenge==396) //Überprüfe Zeichenlänge
{
ComPort6->WriteStr(ok); //Sende alles i.o.
}
else {ComPort6->WriteStr(nio); daten_com6="";} //Sende n.i.o.
varWT=daten_com6.SubString(11,5);
//Zeichen Isolieren um Textnamen zu erzeugen
varWTREPLACE = StringReplace(varWT, " ", "", TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
//Lehrzeichen im isoliertem String löschen
memo_com6->Lines->Text=daten_com6.SubString(1,pos);
//Schreibe kompletten String ins Memo
frmBenutzeroberflaeche->memuebergabe->Lines->Text=memo_com6->Lines->Text;
//Textübergabe an Benutzermemo zur trennung IO und NIO Daten
daten_com6=daten_com6.SubString(pos+1,daten_com6.Length());
//Ersten String sichern, falls nächster Sring schon im Buffer
memo_com6->Lines->SaveToFile("messdaten\\WT" +varWTREPLACE+".txt");
//String in Textdatei speichern, Dateinamen erzeugen
}
}
catch (Exception& e) //Fehlermeldung abfangen
{
String className = e.ClassName();
String msg = e.Message;
}
}