2009-08-21 19 views
1

Ich versuche, Daten aus einer Datei in eine HBufC8-Variable zu lesen und dann die gleichen Daten in eine andere Datei schreiben. Hier ist mein Testcode; Die innere Schleife des Lesens wird viermal wiederholt, um in jeder Iteration 5000 Zeichen in zu lesen. Wenn ich jedoch versuche, die Daten zurück in eine Datei zu schreiben, ist die Datei "testfile.txt" leer. Wird mehr um ein wenig mit ihm spielen, aber Hilfe würde wie immer geschätzt werden;) DankeSymbian: Wie schreibe ich HBufC * in Datei

 HBufC8* iFileBuffer = HBufC8::NewL(20000); 
    TPtr8 ptr(iFileBuffer->Des()); 

    fp.Seek(ESeekStart,pos); 

    Err = fp.Read(ptr); 

    while(!Err && ptr.Length()>0) 
    { 
     Err = fp.Read(ptr); 
     Printf(_L("Data read: %d \n\n"), ptr.Length());   
    } 

    fp.Create(iFileServer,_L("C:\\testfile.txt"), EFileWrite); 

    fp.Seek(ESeekEnd,pos);  

    fp.Write(*iFileBuffer); 
    fp.Close(); 

    delete(iFileBuffer); 

Antwort

-1

Das erste, was ich tat, als um mit Symbian spielen war ihre wahnsinnig IO-Klassen zu Graben und normale C IO verwenden:

zum Beispiel schreibt dies eine png-Datei von einem symbian Speicherpuffer

#include <stdio.h> 
#include <string.h> 

fp = fopen("c:\\data\\others\\pngfile.png","wb"); 
if(fp) 
{ 
     fwrite((char*)httpInputBufDesc->Ptr(), httpInputBufDesc->Length(), 1, fp); 
     fclose(fp); 
     fflush(fp); 
} 
else 
{ 
     LOG("Failed to write to disk\n"); 
} 

als Bonus ist die 3-mal mehr tragbar, wenn Sie jemals für eine andere Plattform zu schreiben, entscheiden (was nicht sehr weit sein könnte seit Sy geholt mbian scheint mehr und mehr Entwickler und sogar Hilfe von Nokia zu verlieren)

+0

STLPort ist jetzt ziemlich gut auf Symbian, höre ich. –

1

Sie lesen max. 20000 Bytes der Eingabedatei zweimal. Der erste Lesevorgang hat wahrscheinlich die gesamte Datei gelesen. In diesem Fall gibt der zweite Lesevorgang 0 Byte zurück, die Sie in die zweite Datei schreiben.

Auch Sie wollen wahrscheinlich nicht das gleiche RFile Handle für beide Dateien verwenden. Es ist auch eine gute Gewohnheit zu Close die Dateien, wenn Sie fertig sind, obwohl die Dateien automatisch geschlossen werden, auch wenn Sie Ihre Datei-Server-Sitzung schließen.

+0

Oh ja, das war es. Ich kann nicht glauben, wie dumm ich war! Vielen Dank für deine Hilfe! –

Verwandte Themen