Auswerten einer Datei nicht möglich.



  • Folgender Code:

    Ich habe zwei Dateien, für beide einen FILE-Stream. Aus f soll gelesen und in s soll geschrieben werden.
    Wenn nun im String puffer, als nächstes ein "eintragen" vorkommt soll der eintrag von der datei auf die f zeigt, in die auf die s zeigt geschrieben werden. Solange bis "email:" erreicht ist und der beitrag danach wird auch noch geschrieben.
    Falls "löschen" vorkommt, wird der Eintrag einfach übersprungen.

    Nun fogendes Problem:
    Es wird immer nur der erste Eintrag in die neue Datei geschrieben, i steht auch auf 1 und j auf 0.
    puffer-String:"15=loeschen&30=eintragen&43=eintragen"
    wenn ich nun die beiden do while schleifen auskommentiere, steht i auf 2 und j auf 1, also alles richtig. Aber was hat das auskommentieren der inneren schleifen, mit der if & else Bedingung zu tun?
    Ich finde da einfach keinen Zusammenhang.



  • Code vergessen, ich bitte um entschuldigung:

    ptr = strtok(puffer,"=");
    	ptr = strtok(NULL,"&");
    	while (ptr != NULL)
    	{
    		if(strcmp(ptr,"eintragen")==0)
    		{
    			do			
    			{
    				fscanf(f,"%s",puffer);
    				fprintf(s,"%s",puffer);
    			} while(strcmp(puffer,"email:")!=0);
    			fscanf(f,"%s",puffer);
    			fprintf(s,"%s",puffer);
    			i++;
    		}
    
    		else if(strcmp(ptr,"loeschen")==0)
    		{
    			do 
    			{
    				fscanf(f,"%s",puffer);
    			} while (strcmp(puffer,"email:") != 0);
    			fscanf(f,"%s",puffer);
    			j++;
    		}
    		ptr = strtok(NULL,"=");
    		ptr = strtok(NULL,"&");
    	}
    


  • Hab den Fehler gefunden, habe die Variable puffer für zwei verschiedene Zwecke benutzt.

    Kurze Frage: Ich will den Inhalt einer Datei löschen, wie bekomme ich das hin? :>



  • Z.b. indem du bei fopen den Parameter w benutzt.



  • Und wenn Du wirklich sicher sein willst, dass der Inhalt weg ist dann würde ich ihn vorher überschreiben.


Anmelden zum Antworten