2009-08-21 7 views
1

ファイルからHBufC8変数にデータを読み込み、別のファイルに同じデータ を書き込もうとしています。ここに私のテストコードがあります。読み取りの内部ループは4回繰り返して、各繰り返しで 5000文字を読み取ります。しかし、データをファイルに書き戻そうとすると、 というファイル "testfile.txt"は空です。それをより多くの周りに少し再生されますが、ヘルプは いつものように認識されるであろう;)おかげでSymbian:ファイルにHBufC *を書き込む方法

 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); 

答えて

-1

私はシンビアンで遊んでた最初の事は彼らの非常識なIOクラスを捨て、通常のC IOを使用していました。ボーナスとして例えば

、これはシンビアンmemorybufferからPNGファイルを書き込み

#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"); 
} 

あなたは非常に遠くではない可能性がある(別のプラットフォームのために書くことにした場合、これは、3倍以上の移植性がありますSyからフェッチされたmbianはもっと多くの開発者やNokiaからの援助を失うようです)

+0

STLPortはSymbianでもかなり良いです。 –

1

20000バイトの入力ファイルが2回あります。最初の読み込みは、ファイル全体を読み込む可能性があります。その場合、2回目の読み取りは0バイトを返し、2番目のファイルに書き込みます。

また、両方のファイルに同じRFileハンドルを使用しないことをお勧めします。ファイルサーバーセッションを閉じるときにも、ファイルは自動的に閉じられますが、完了するとファイルはCloseにも良い習慣です。

+0

ああ、そうだった。私がどれほど愚かなのか信じられない!ご協力いただき誠にありがとうございます! –

関連する問題