Problem mit CString SetAt
-
Hallo zusammen,
Versuche einen char den ich über eine serielle Schnittstelle empfange, einem CString mit SetAt hinzuzufügen. Allerdings bekomme ich dann immer eine Assertion.
do { fehler=ReadFile(serialconn,&dummy,1, &BytesRead, NULL); i++; empfang.SetAt(i,dummy); } while(empfang[i-1]!=suffix);empfang ist ein CString und dummy ein char. Das müsste doch so gehen??
Gruß helda
-
Für SetAt muss der String bereits groß genug sein. Ist der es nicht fliegt Dir die ganze Sache mit einem ASSERT um die Ohren.
Also einfach entweder += verwenden oder den Buffer vorher mit GetBuffer oder SetLength groß genug machen.Bei += sieht das ganze so aus:
do { fehler=ReadFile(serialconn,&dummy,1, &BytesRead, NULL); empfang += dummy; } while(empfang[empfang.GetLength()-1]!=suffix);BTW: In dieser Form die Daten zu Lesen ist uneffektiv. Lies doch soviel Daten wie Möglich auf einen Schlag!