[過去ログ] DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
477(7): 名前は開発中のものです。 [sage] 2018/09/07(金) 20:11:51.17 ID:stA8I9vh(2/2) AAS
>>473
int fh = FileRead_open(s.c_str());
while(fh && getline(fh,buf[line])){line++;}
ん?
FileRead_readとかのDXライブラリ関数じゃなくて
getlineが使われてる様だが?
例えばabc.csvを他のファイルと纏めて
Archive.dxaっていうアーカイブにした場合、
std::ifstream t;
t.open( "abc.csv");とかしたって読み込まないよ
そんなファイル無いんだから
DXライブラリ用のArchive作ってるのに
それを通常の入出力関数で読み出そうとしてるのがバグの原因だよ
478: 名前は開発中のものです。 [] 2018/09/07(金) 22:11:13.47 ID:SP/YWN4v(9/13) AAS
>>477
>getlineが使われてる様だが?
int fh = FileRead_open(s.c_str());
えっと、まずこれをした時点で、
ファイル内の文字がfhに入ってると思ってるんで
それをgetline(fh,buf[line]))するわけですから
問題ないかと思っているんですが、、私、なにか勘違いしてるのでしょうか、、
>t.open( "abc.csv");とかしたって読み込まないよ
>そんなファイル無いんだから
これはどーいうことですか?パスの表記の話でしたら
ここでは割愛しただけですので実際は頭のフォルダとファイル名と入力してます。
t.open( "フォルダ名/abc.csv");な感じで。
、、そー言う問題ではなくて、archiveした場合
"abc.csv"というファイル名ではなくなるという話ですか??
>>476
まさか、これ、自分と同じことやってるプログラムですか?
まさかこんなに短くできますよ、とかじゃないですよね?
すごく興味深いのでちょっと処理をじっくり読ませて頂きます。
479: 名前は開発中のものです。 [] 2018/09/07(金) 22:15:41.50 ID:SP/YWN4v(10/13) AAS
>>477
あ、今気づきました、
自分FileRead_read使ってないですね、、、
FileRead_openとFileRead_readと一緒くたに考えてソース作ってしまってました。
FileRead_openもDXライブラリの関数でそれで開いてるから
DXライブラリArchiveしたファイルを開く問題はすでにクリアしたと。
519: 名前は開発中のものです。 [] 2018/09/08(土) 23:45:27.10 ID:DgEMMqli(20/21) AAS
>>518
そもそもstringクラスの話はココの人に「それでは無駄がでている」との指摘を受けて
話に出しているだけで私としては修正することでエラーが出るなら
buf[3000]で無駄が出ていようが構わいことです。
とにかく、何日も悩んでいるのは、archiveしたcsvを読むのに、
DXライブラリ関数を使っているのにビルド上は問題ないのにarchive後は正しく読まない、
その理由がわからない。
>>477さんが指摘したDXライブラリ関数では無いgetlineも
自分で新たにbool getline2(int fh, string& s);と宣言し
bool StageDataBase::getline2(int fh, string& s)
{char buf[1024];
if (FileRead_gets(buf, sizeof buf, fh) == -1) return false;
s = buf;
return true;}
とFileRead_getsを使って入れ込む関数を作っても、archive後は正常に読み込んでいない。
ここの住人さんが提示するソースを研究なり導入しても改善せず、なにがなんだかわからんのです。
私の未熟なのはわかりましたが、私のやりたいことに対して、
現在のソースの間違い個所を指摘してもらいたいんです。
未熟だ、charでは無駄が、とか正直そんなのどうでもいいですよ。
解決したいのは、archiveしたcsvを今のソースでは
正しく読んでくれないんです。どこが間違っているせいですか?
それがご相談したいことなんです。
522(1): 名前は開発中のものです。 [] 2018/09/08(土) 23:56:20.39 ID:DgEMMqli(21/21) AAS
そっちは本当に正解が見えているのか、いないのかわからないのに
私の相談内容外の問題ばかり指摘してくる方だろうと
レスをくれたからにはちゃんとこちらも返事しているつもりです。
私のほかの問題はどうでもいい。相談内容に対しての
perfectなご指摘が欲しいんですよ、私は。
今のところ、本当に有益だった解答は、たったひとつだけです。
>>477さんの
「DXライブラリ用のArchive作ってるのに
それを通常の入出力関数で読み出そうとしてるのがバグの原因だよ」
だけです。
それ以外は、正直どうでもいいことです。
ソースは千差万別、実力によりピンキリでしょ?
無駄があるとか、綺麗じゃないとか、言いたいことはわかりますが
正味の話、ビルド後、思ったことができていれば問題なくないですか?
みんなが見るのはゲーム画面です。ソースじゃないんですよ。
私はブサイクな自分のソースを晒してまでご相談させて頂いてるんです。
自分のソースに対して、なぜarchive後に正常にcsvを読めなくなってしまうのか、
perfectなご指摘を、どうかお願いします。
524: 名前は開発中のものです。 [] 2018/09/09(日) 00:05:17.98 ID:/IlMVd18(1/11) AAS
>>521
あのですねgetline関数は
istream クラスのメンバー関数です。
C++の関数ですよ?
知らないんですか?
ただ、>>477さんにDX専用の関数つかえと
指摘されたので
あとでDXライブり関数を利用するgetline関数を自作しました。
それがこれです↓
bool getline2(int fh, string& s);と宣言し
bool StageDataBase::getline2(int fh, string& s)
{char buf[1024];
if (FileRead_gets(buf, sizeof buf, fh) == -1) return false;
s = buf;
return true;}
で、FileRead_getsを使って入れ込む関数を作った、のに
やっぱりarchive後まだ正常に読んでくれませんでした。
だから未だに困っていますが。
538(1): 名前は開発中のものです。 [] 2018/09/09(日) 00:36:31.83 ID:/IlMVd18(8/11) AAS
素材フォルダをarchiveしなければ、
素材フォルダと実行ファイルとでもう動くんです。
ただ、素材フォルダをarchiveしたいと思ったから
>>477さんのおかげで、archiveしたファイルを扱うなら
DXライブラリ関数にしなければならない、とアドバイスを受け
読み込み部分のプログラムを修正しなければならないと知りました。
で、今、いろいろやってるんですが、正しく読み込まない、
なぜだ?DXライブラリ関数を使っているつもりなのに、、、困った。
そういう現状なんです。
どうか、このバカめに、知識人様のお知恵を貸しください。
どこが間違っているのかの、ご指摘がほしいのです。
544(1): 名前は開発中のものです。 [sage] 2018/09/09(日) 01:24:13.78 ID:igBBjSKe(1) AAS
まず、>477の前に俺が>468と>471でパーフェクトな回答をしたことに気付いてほしい
あと、パーフェクトな答えはいっぱい出てるのに何故できないのかというと、君は「変数の型」のことがわかっていないのに自分ではわかってるつもりになっていて、何度それを指摘されても理解しようとしないから
間違いの一例をあげると
>int fh = FileRead_open(s.c_str());
>ファイル内の文字がfhに入ってると思ってるんで
これはC言語の初歩を勉強した人なら絶対にありえないパーフェクトな間違いで、これに気付かないのが全ての元凶になってる
型も入出力も全くわかってない上に、DXライブラリのリファレンスを読む気まるで無しなので、何を説明しても通じない
しかもこういう間違いが書き込みのたびに出てきてるので、皆が基礎を学べと言ってる
もうきりがないので究極にパーフェクトな答えをピンポイントで書くと、
DXライブラリのリファレンスをよく読みCのファイル入出力と見比べて
FileRead_read、FileRead_getsあたりを使って「型の合った正しい引数」を与えればうまくいく
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s