marcosan
Mitglied
Hallo Community
Ich hoffe, es finden sich einige, die mir bei meinem Problem hier etwas weiterhelfen können.
Ziel ist es, Daten die von einem Scanner kommen, in ein Text File zu speichern. Datensatz um Datensatz. Die Funktion funktioniert soweit, das Problem vermute ich bei der von mir erstellten Speicherung der Daten.
Folgende Probleme habe ich beim unten angefügten Code.
1. Text „anfügen“
Der vom Scanner eingelesene Text wird zwar in der Datei gespeichert, er überschreibt aber den alten Inhalt. Eigentlich sollte der Text auf einer neuen Zeile im Textfile angefügt werden.
2. dynamische Länge der Daten die eingelesen werden.
WriteFile (hFile,g_pszTextLabel,20,&Readd, NULL); die 20 sollte durch den dynamischen Wert in nTextLength ersetzt warden. Setze ich nTextLength anstelle der 20 ein, so wird nur 50% der Daten in g_pszTextLabel gespeichert.
3. Zeinenumbrüche
Ich würde gerne in einem String einen Zeilenumbruch in die Textdatei speichern. Aber weder \n noch andere Formatierungen die mir bekannt sind, scheinen zu gehen.
Das Gerät auf dem das Programm laufen wird findet man hier:
http://www.datalogic.de/_vti_g2_p_det.aspx?idp=e7a3ea6d-c1b8-40ed-bfda-9009003187ac&rpstry=17_
Sind zwar gleich 3 Fragen auf einmal, bin aber für jeden Hinweis froh, der mich etwas weiterbringt bei meinem kleinen Programm.
Ich hoffe, es finden sich einige, die mir bei meinem Problem hier etwas weiterhelfen können.
Ziel ist es, Daten die von einem Scanner kommen, in ein Text File zu speichern. Datensatz um Datensatz. Die Funktion funktioniert soweit, das Problem vermute ich bei der von mir erstellten Speicherung der Daten.
Folgende Probleme habe ich beim unten angefügten Code.
1. Text „anfügen“
Der vom Scanner eingelesene Text wird zwar in der Datei gespeichert, er überschreibt aber den alten Inhalt. Eigentlich sollte der Text auf einer neuen Zeile im Textfile angefügt werden.
2. dynamische Länge der Daten die eingelesen werden.
WriteFile (hFile,g_pszTextLabel,20,&Readd, NULL); die 20 sollte durch den dynamischen Wert in nTextLength ersetzt warden. Setze ich nTextLength anstelle der 20 ein, so wird nur 50% der Daten in g_pszTextLabel gespeichert.
3. Zeinenumbrüche
Ich würde gerne in einem String einen Zeilenumbruch in die Textdatei speichern. Aber weder \n noch andere Formatierungen die mir bekannt sind, scheinen zu gehen.
C++:
void ThisProgram_UpdateTextLabel(void)
{
HANDLE hFile;
DWORD Readd;
hFile = CreateFile(_T("/My Documents/test.txt"),
GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // File erstellen
g_bNewCode = true;
ThisProgram_DeinitTextLabel();
//Datem vom Scanner empfangen
size_t nTextLength = g_oScanner.getLabelTextLength();
if (nTextLength>0)
{
g_pszTextLabel = new TCHAR [nTextLength+1];
if (g_pszTextLabel != NULL)
{
g_oScanner.getLabelText(g_pszTextLabel, nTextLength);
g_pszTextLabel[nTextLength] = _T('\0');
// Daten in Datei speichern
WriteFile (hFile,g_pszTextLabel,20,&Readd, NULL);
// Statischer WERT 20 durch dynamischen ersetzen
}
}
// Speicherfile schliessen
CloseHandle (hFile);
}
Das Gerät auf dem das Programm laufen wird findet man hier:
http://www.datalogic.de/_vti_g2_p_det.aspx?idp=e7a3ea6d-c1b8-40ed-bfda-9009003187ac&rpstry=17_
Sind zwar gleich 3 Fragen auf einmal, bin aber für jeden Hinweis froh, der mich etwas weiterbringt bei meinem kleinen Programm.
Zuletzt bearbeitet: