Probleme beim Auslesen einer Textdatei



  • Hallo Leute,

    ich habe folgendes Problem:

    Ich möchte einige Informationen aus einer Textdatei einlesen und in Variablen speichern. der Inhalt meiner Textdatei sieht folgendermaßen aus:

    06-14-2010
    15:40:19
    //LogFile_erstellen__1_ja,_0_nein
    1
    //Speicherort_und_Name_des_Netzes:
    C:\Users\Chris\Documents\FH Gus\Kondensatwasserstrom.dsc

    Beim Einlesen kommt es erst am Ende zu Problemen, da in der letzten Zeile ja ein Leerzeichen zwischen "FH und Gus" ist. Mit folgenden Programmzeilen ließt das Programm nur bis "FH", da fscanf ja bei Leerzeichen aufhört:

    {
        	char date[256];
    	char time[256];
    	char dummy[256];
    
    	FILE *InputIni;
    	FILE *LogFile;
    	char input[256];
    	char log[256] = "C:\\Ini-Maker\\log.txt"; 
    
    	// nötige Variablen für die Ini-Steuerung
    	long LogErstellen = 0;
    
    	LogFile = NULL;
    
    	strcpy(input, "c:\\ini-maker\\ebsini.ini");
    	InputIni = fopen(input, "r");
    	if (InputIni == NULL)
    	{
    		exit(0);
    	}
    
    	fscanf(InputIni, "%s*[^\n]", date);
    	fscanf(InputIni, "%s*[^\n]", time);
    	fscanf(InputIni, "%s*[^\n]", dummy);
    	fscanf(InputIni, "%ld*[^\n]", &LogErstellen);
    	fscanf(InputIni, "%s*[^\n]", dummy);
    	fscanf(InputIni, "%s*[^\n]", dummy); // hier der FEHLER!
    
    	fclose(InputIni);
    
    	        if (LogFile != NULL)
    		{
    			LogFile = freopen(log, "w", LogFile);
    		}
    		else
    		{
    			LogFile = fopen(log, "w");
    		}
    
    		fprintf(LogFile, "%s\n", date);
    		fprintf(LogFile, "%s\n", time);
    		fprintf(LogFile, "%s\n", dummy);
    		fprintf(LogFile, "%ld\n", LogErstellen);
    
    }
    

    Ich habe nachgelesen, dass ich mit dem Befehl fgets arbeiten soll, leider bekomme ich es nicht hin. Kann mir evtl jemand mal genau sagen, wie die Zeile zu heißen hat?

    Vielen Dank!!

    Chris



  • if( fgets(date,sizeof(date)-1,InputIni) )
    if( fgets(time,sizeof(time)-1,InputIni) )
    if( fgets(dummy,sizeof(dummy)-1,InputIni) )
    if( fgets(dummy,sizeof(dummy)-1,InputIni) && LogErstellen=atol(dummy) ) ;
    


  • Danke für die Hilfe, tat geklappt! 🙂


Log in to reply