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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#1

投稿記事 by YYSS » 14年前

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ライブラリ使用

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 14年前

fopenはDXライブラリと何の関係もない関数なので、
DXライブラリのアーカイブは読めません。

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

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

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

アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#3

投稿記事 by YYSS » 14年前

FileRead_open 関数を使うと、外部でCSVファイルを開いていると、読み込めなくなるんですよね・・・

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

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

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

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

#4

投稿記事 by h2so5 » 14年前

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

アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#5

投稿記事 by YYSS » 14年前

失礼しました;;

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

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


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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 14年前

VC++であれば、
#ifdef _DEBUG
//デバッグ時
#else
//リリース時
#endif
と言う手があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

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

#7

投稿記事 by h2so5 » 14年前

コード:

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

アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#8

投稿記事 by YYSS » 14年前

戻り値の型が合いません・・・

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

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

アバター
a5ua
記事: 199
登録日時: 14年前

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

#9

投稿記事 by a5ua » 14年前

CSVファイルの編集に使うソフトを変えてみるのはどうでしょう?
以下のソフトなどを試してみてはどうですか?

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

アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#10

投稿記事 by YYSS » 14年前

[quote="a5ua"]CSVファイルの編集に使うソフトを変えてみるのはどうでしょう?
窓の杜 - 表計算やマクロ機能を備えるCSVエディター「Cassava Editor」

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

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

アバター
YYSS
記事: 125
登録日時: 14年前
連絡を取る:

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

#11

投稿記事 by YYSS » 14年前

追記:
エクセルで、CSVファイルを共有モードにしたらすんなりできました。

閉鎖

“C言語何でも質問掲示板” へ戻る