Problem mir Schreiben in Textdatei



  • heike23 schrieb:

    mit _tfprintf bekomme ich den fehler:

    error C2065: '_tfprintf' : undeclared identifier
    Error executing clarm.exe.

    Ich glaube, er meinte _ftprintf.



  • dann bekomme ich diese fehlermeldung :

    cannot convert parameter 2 from 'char [4]' to 'const unsigned short *'

    das ganze sieht bei mir jetzt so aus:

    g_pszTextLabel = new TCHAR [nTextLength+1];
    
    		if (g_pszTextLabel != NULL)
    		{
    			g_oScanner.getLabelText(g_pszTextLabel, nTextLength);
    
    			g_pszTextLabel[nTextLength] = _T('\0');
    
    			FILE *file = fopen("My Documents/scan.txt","a");
    			_ftprintf(file,"%s\n",g_pszTextLabel);
    			fclose(file); 
    		}
    

    😕 hoffe das klappt irgednwie. oder liegt es daran das es ein TCHAR ist ??

    danke euch !!



  • was mir gerade aufgefallen ist.

    H
    H
    H

    ist fast richtig. 🙂 es ist nur der erste buchstabe des strings. aber warum nimmt er nur die erste ziffer und geht nicht weiter ??

    ursprünglich sollte es heissen:

    HUI 9999 01 10

    Danke !



  • heike23 schrieb:

    was mir gerade aufgefallen ist.

    H
    H
    H

    ist fast richtig. 🙂 es ist nur der erste buchstabe des strings. aber warum nimmt er nur die erste ziffer und geht nicht weiter ??

    ursprünglich sollte es heissen:

    HUI 9999 01 10

    Danke !

    Da wird wohl hinter dem "H" eine binäre Null ('\0') stehen, was ja quasi das Signal dafür ist, das der String an dieser Stelle aufhört. Zeig doch am besten mal mehr Code.



  • hier der code:

    //GET LABEL MESSAGE
    	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');
    
    			FILE *file = fopen("My Documents/scan.txt","a");
    			fprintf (file,"%s\n",g_pszTextLabel);
    			fclose(file); 
    		}
    	}
    

    hoffe das das reicht 🙂



  • heike23 schrieb:

    dann bekomme ich diese fehlermeldung :

    Du musst natürlich überall TCHAR verwenden...

    g_pszTextLabel = new TCHAR [nTextLength+1];
    
    if (g_pszTextLabel != NULL)
    {
      g_oScanner.getLabelText(g_pszTextLabel, nTextLength);
      g_pszTextLabel[nTextLength] = _T('\0');
      FILE *file = _tfopen(_T("My Documents/scan.txt"), _T("a, css=UTF-8"));
      _ftprintf(file, _T("%s\n"), g_pszTextLabel);
      fclose(file); 
    }
    delete [] g_pszTextLabel;
    


  • erstmal vielen dank fuer deine/eure Hilfe.
    ich habe den code so übernommen. bekomme auch keine fehler oder sonstiges.

    was jetzt mein problem ist. er schreibt einfach gar nichts in die datei.

    also sie bleibt komplett leer. woran könnte das liegen ??

    Danke.



  • habs hinbekommen.

    diese zeile geändert:

    FILE *file = _tfopen(_T("My Documents/scan.txt"),_T("a"));
    

    jetzt funktioniert es 🙂

    VIELEN DANK !!!!!



  • eine frage hätte ich doch noch 🙂
    hoffe es liest jetzt auch noch jemand..

    also ich kann die daten jetzt fast korrekt in die datei schreiben.

    problem ist er macht es manchmal bzw oft nicht richtig.
    bsp:
    so sollte es aussehen:

    HUI-9999-01-10
    HUI-9999-01-10
    HUI-9999-01-10
    HUI-9999-01-10
    4012297025257
    HUI-9999-01-10

    so sieht es aus:

    HUI-9999-01-10
    HUI-9999-01-10-
    HUI-9999-01-10-
    HUI-9999-01-10-
    4012297025257
    HUI-9999-01-10-

    ich habe keine ahnung warum er da, aber auch nicht immer, noch dieses zeichen am ende dran hängt. "-"
    habt ihr ne idee ??

    danke euch !!



  • Hallo,

    ich denke es kommt durch

    g_pszTextLabel = new TCHAR [nTextLength+1];
    

    In der Variablen steht nach Deklaration schrott drin.
    Schreibe doch nach dem der Speicherreserviereung

    memset(g_pszTextLabel,'\0',nTextLength+1);
    

    Jetzt ist egal was du rein schreibst als letztes Zeichen auf jeden Fall \0 am Ende.

    Hoffe das behebt Dein Problem

    Oli_1977


Anmelden zum Antworten