ページ 11

アーカイブデータの読み込み

Posted: 2011年1月31日(月) 23:00
by YYSS
DXライブラリ標準のアーカイバー「DxaEncode」を使用して、
パスワード保護されたアーカイブデータを作成したのですが、
CSVファイルだけが読み込めません。

他のPNG・wav・mp3は読み込めるのですが、CSVだけが読み込めません。

読み込めないというか開けない・・・

開くのはfopenを使用してますが、アーカイブには対応していないのでしょうか?

アーカイブ前のデータだと普通に読み込めるのですが・・・

読み込み処理部分

コード:

  FILE *fp;
    int n,num,i;
    char *fname		= "data\\stage\\Stage1.csv";
    int input[64];
    char inputc[64];

   	//ファイル読み込み
	if( (fp = fopen( fname, "r" )) == NULL ){
		printfDx("read error\n");
		return;
    }
開発環境
Windows Vista Home Premium SP2
Visual C++ 2010 Express
DXライブラリ使用

Re: アーカイブデータの読み込み

Posted: 2011年1月31日(月) 23:15
by h2so5
fopenはDXライブラリと何の関係もない関数なので、
DXライブラリのアーカイブは読めません。

代わりにDXライブラリにある FileRead_open 関数を使います

詳細は以下:
http://homepage2.nifty.com/natupaji/DxL ... c.html#T11

追記:
というかfopenで開けてしまったら暗号化する意味ないですよね..(-_-;)

Re: アーカイブデータの読み込み

Posted: 2011年2月01日(火) 21:04
by YYSS
FileRead_open 関数を使うと、外部でCSVファイルを開いていると、読み込めなくなるんですよね・・・

FileRead_openとfopenの2種類の関数を用意するしかないんでしょうか?

FileRead_openでfopenのように”r”指定で開ければいいのですが・・・

Re: アーカイブデータの読み込み

Posted: 2011年2月01日(火) 21:08
by h2so5
YYSS さんが書きました:FileRead_open 関数を使うと、外部でCSVファイルを開いていると、読み込めなくなるんですよね・・・
パスワード保護されたアーカイブデータ内のCSVファイルを、
どうやって外部で開くんですか?

Re: アーカイブデータの読み込み

Posted: 2011年2月01日(火) 22:20
by YYSS
失礼しました;;

○製作時
アーカイブしてない、CSVファイルを外部で開き編集しながら製作
このとき、FileRead_open関数だと、読み込めないのでfopenを使用

○リリース時
パスワード保護したアーカイブデータ内のCSVファイルを読み込みたいけど
fopenだと読み込めない
FileRead_openなら読み込める


fopenとFileRead_openを使用した関数をそれぞれ用意して、
リリースの時に切り替えるしか方法はないようですね?

Re: アーカイブデータの読み込み

Posted: 2011年2月01日(火) 22:25
by softya(ソフト屋)
VC++であれば、
#ifdef _DEBUG
//デバッグ時
#else
//リリース時
#endif
と言う手があります。

Re: アーカイブデータの読み込み

Posted: 2011年2月01日(火) 23:00
by h2so5

コード:

#ifdef _DEBUG
#define csv_open(fname) fopen( fname, "r" )
#else
#define csv_open(fname) FileRead_open( fname )
#endif
こうすれば共通のcsv_open(fname)で処理できます。

Re: アーカイブデータの読み込み

Posted: 2011年2月02日(水) 00:09
by YYSS
戻り値の型が合いません・・・

fopenの戻り値は FILE型で
FileRead_openは int型なので・・・

それにともない、
標準のgetcなどの引数の型は FILE型で、FileRead_getcなどの引数の型はint型なので
引数も合わなくなってしまいます

Re: アーカイブデータの読み込み

Posted: 2011年2月02日(水) 06:34
by a5ua
CSVファイルの編集に使うソフトを変えてみるのはどうでしょう?
以下のソフトなどを試してみてはどうですか?

窓の杜 - 表計算やマクロ機能を備えるCSVエディター「Cassava Editor」
http://www.forest.impress.co.jp/article ... ditor.html

Re: アーカイブデータの読み込み

Posted: 2011年2月04日(金) 01:29
by YYSS
[quote="a5ua"]CSVファイルの編集に使うソフトを変えてみるのはどうでしょう?
窓の杜 - 表計算やマクロ機能を備えるCSVエディター「Cassava Editor」

このソフトなら、CSVを開いていても、読み込むことが出来ました。
エクセルと違って軽いので、しばらくはこれを使いたいと思います。

ありがとうございましたー

Re: アーカイブデータの読み込み

Posted: 2011年2月05日(土) 11:44
by YYSS
追記:
エクセルで、CSVファイルを共有モードにしたらすんなりできました。