• ベストアンサー

WINDOW CE でファイルの作成

a-kumaの回答

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

WinCE 用のプログラムを書いたことはないのですが、普通に Win32 API を使える はずですよね。ファイルアクセス用の標準関数と Win32 API は以下のような 対応になります。 標準関数 … Win32 API fopen() … CreateFile() fclose() … CloseHandle() fread() … ReadFile() fwrite() … WriteFile() 標準関数を使ったファイルのアクセスを分かっているのであれば、引数の位置や 型の違いだけなので、HANDLE を FILE と読み替えれば、それほど難しくないと 思います。 引数に指定する内容は、マニュアルを参照して下さい。

youking
質問者

お礼

結局僕の勘違いだったみたいで標準関数で出来ました。親切な回答ありがとうございました。

関連するQ&A

  • freadでファイルを読み込んだ際の処理時間について

    フラッシュメモリやハードディスクへファイルの書き出しをfwriteで行い、 作成したファイルをfreadを使って読み込み、その前後でclock関数を呼ぶことで 読み書きの処理時間を算出するプログラムを作成しています。 具体的には以下のような処理を行わせています。 //書き込み用のバッファを作成 buf_w = (unsigned char*)malloc(BUFSIZE); memset(buf,0,BUFSIZE); //ファイル書き込み処理 fp = fopen("ファイル名","wb"); start = clock(); fwrite(buf_w,BUFSIZE,1,fp); end = clock(); fclose(fp); //読み出し用のバッファを作成 buf_r = (unsigned char*)malloc(BUFSIZE); //ファイル読み出し処理 fp = fopen("ファイル名","rb"); start = clock(); fread(buf,BUFSIZE,1,fp); end = clock(); fclose(fp); 以上の処理にて、BUFSIZEが1GB程度の場合は問題ないのですが、 BUFSIZEを200MB程度に減らした場合に読み込み速度が ありえないほど速くなってしまうという問題が発生してしまいます。 (HDDやフラッシュメモリからの読み込みなのに転送速度が1000MB/sオーバーとか) RAMDISKとして設置したXドライブで試すと読み書き共に1200MB/sくらいになるので、 もしかしたらメモリにキャッシュされたデータを直接読み込んでしまっているのでは…… などと考えているのですが、試行錯誤すれども回避策が思い浮かびません。 どなたか、この現象について心当たりのある方がいらっしゃいましたら何かアドバイスいただけると幸いです。 宜しくお願いいたします。

  • テキストファイルの同期

    はじめまして、超初心者プログラマのmoominといいます。 ファイルの同期プログラムに関して質問があるのですが、 あるテキストファイルを、他のディレクトリのテキストファイルとを 常に同期をするプログラムを作成しています。 これが作成したソースです。 ------------------------- #include "stdafx.h" #include <stdio.h> #include <windows.h> int _tmain(int argc, char *argv[]) { FILE *fp,*copy; int buffer; fp=fopen("○○○/×××.txt","rb"); copy=fopen("aaa/fff.txt","wb"); for(int i=1;i>0;i++){ fread(&buffer,sizeof(buffer),1,fp); fwrite(&buffer,sizeof(buffer),1,copy); if(feof(fp)){ fclose(fp); fclose(copy); } } return 0; } VC2008を利用して作成していますが、 一度きりの同期なら可能なのですが、 常に同期するというプログラムがわかりません。 どう変えればよいでしょうか?

  • Cでバイナリデータを変換

    今持っているバイナリファイルfile1.x86をテキストファイルfile1.txtに変換したいんですけどうまくいきません。fopenとfreadでバイナリファイルを読み込むところまで入っていると思うんですけど、テキストファイルとして書き出すことができません。 #include <stdio.h> main() { short a[32000]; FILE *infile, *outfile; infile = fopen("iroha.x86", "r"); outfile = fopen("iroha.dat", "w+"); fread( a, sizeof(short), 32000, infile ); fwrite( a, sizeof(short), 32000, outfile ); fclose(infile); fclose(outfile); } これだとそのまんま出力されるんです。当たり前なんですけど... どこをどう変えればいいか教えてください。 よろしくお願いします。

  • C言語のファイルの読み書き

    以下のようなプログラムを作成したいのですが、どうしても作成できません。 さまざまなサイトを参考にしたのですが、まったく理解できませんでした。 具体的なプログラム式をご教授願います。 よろしくおねがいします…。 1)複数の学生の情報を読み取り配列を行う struct student a [LIST_SIZE_A] 2)配列に代入した情報をファイルに書き込む fopen("…","w"); … fclose() 3)配列に代入した情報をファイルに追加する fopen("…","a"); … fclose() 4)ファイルの内容を表示する fopen("…","r")

  • ファイルの書込みができません 教えてください

    今 ファイルの書き込みを作成しているのですが。以下のプログラムではテキストの方に書き出しされません。何処が悪いのかわかりません。 わかる方教えてください。 <html> <head> <title>file2</title> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> </head> <body> <?php $file_name="file2.txt"; $fh=fopen($file_name,"w+"); fwrite($fh,"1行目です?n2行目です"); fclose($fh); print "ファイルの書込完了"; ?> </body> </html> ファイルの書込完了とはでるのですが。

    • ベストアンサー
    • PHP
  • freadとfwrite

     C言語初心者です。 fopenでテキストファイルで読み込んで,freadやfwriteなどは使っていいのでしょうか? 入門書などでは、freadやwriteはバイナリファイルでしか使っていないので疑問になりました。

  • fread処理がうまくいかない!!

    バイナリエディタでfwriteで書き込んだデータは確認できたのですがfread後のデータがきちんと表示されません。 どうしてでしょうか? #include <stdio.h> void main(void) { char i[] = {'a','b'}; char j[2]; FILE *fpbin; fpbin = fopen("data","wb+"); fwrite(&i,sizeof(char),2,fpbin); fpbin = fopen("data","rb"); fread(&j,sizeof(char),2,fpbin); printf("j = %c\n", j[0]); fclose(fpbin); }

  • ファイルコピープログラムについて

    まだC言語とか始めたばかりであまりよく分からないのですが、 今、ドラッグしたファイルをデスクトップにコピーするプログラムを作成してるのですが、少し困ったことになりました・・・・ 一応ファイルのコピーをデスクトップに作成はできるのですが、 何故か、作成されたファイルのサイズが2バイト程大きくなります・・・。 ファイルサイズを変えずにコピーする方法が分かりません・・・ ソースを張っておきますので、誰か解決策を教えていただけないでしょうか? #include <stdio.h> #include <windows.h> int main(int argc,char *argv[]) { FILE *fp,*copy; int buf; if(argc>1){ rename(argv[1],"DATA.bin"); fp=fopen("DATA.bin","rb"); copy=fopen("c:/xxx/yyy/Desktop/COPY.bin","wb"); while(1){ fread(&buf,sizeof(buf),1,fp); fwrite(&buf,sizeof(buf),1,copy); if(feof(fp)){ puts("OK"); fclose(fp); fclose(copy); rename("DATA.bin",argv[1]); rename("COPY.bin",argv[1]); exit(1); } } } return 0; }

  • バイナリファイル(画像)のよみこみ

    レポートで1024×1024ピクセルの画像を、間引いて256×256の画像にしろというのが出されました。画像はrawファイルです。 それで、とりあえず画像を読み込んで、出力するプログラムを書いてみたんですが、コンパイルは出来るのに実行すると不正な処理とけいこくがでてきてしまいます。 ソースは #include<stdio.h> main() { unsigned char in[1024][1024],out[1024][1024]; FILE *fp; int i,j; fp=fopen("aaa.raw","rb"); fread(in,sizeof(unsigned char),1024*1024,fp); fclose(fp); for(i=0;i<1024;i++){ for(j=0;j<1024;j++) out[i][j]=in[i][j]; } fp=fopen("bbb.raw","wb"); fwrite(out,sizeof(unsigned char),1024*1024,fp); fclose(fp); } です。 どこがいけないのかアドバイスいただきたいです。よろしくお願いします。

  • FILE オープンについて

    いつもお世話になります。 今ファイルデータ検索処理を検討しております。 今、search.txtには、 検索対象となるファイルパスが記載されています。 [search.txt] /home/hoge/SAMPLE1.jpg /home/hoge/SAMPLE2.jpg search.txtをfopen()し、1行ずつfgets()して、 得られるファイルパスより、そのファイルを fopen()して解析する処理がしたいですが、 fgets()より得られたファイルパスをfopen()し、 fread()するとセグメンテーションエラーになります。 どのようにしたらいいのでしょうか? 現状のコードを下記します。 FILE *fp; char *com1 = "/home/hoge/search.txt"; FILE *confp; char buf1[1024]; char buf2[1024]; int i =0; fp = fopen(com1, "r"); while( fgets(buf1, sizeof(buf1), fp )){ confp = fopen(buf1, "rb"); //*.JPGファイルをオープン //下記fread()でセグメンテーションエラー size_t size = fread( buf2, sizeof(char), 1024, confp ); for( i = 0; i<1024; i++ ){ if( (buf2[i] == 0xff) && (buf2[i+1] == 0xe0) ){ printf("%02x\n",buf[i+5]); } } } fclose(fp); fclose(confp); 上記のように、search.txtをfopen()し、読み込んだファイルパスを fopen()して、fread()読み込みをする方法を 教えて下さい。 どうぞよろしくお願い致します。