トップページ > 過去ログ > 記事閲覧
数値と文字列の混じったデータの読み書き
名前:yama 日時: 2009/07/05 03:16

大量の数値データと文字列少し(ファイルパス等)を一緒に保存したいのですがうまいやり方が分かりません。 fwriteとFileRead_readを使って、構造体で一緒に保存できるかもと思ったのですが、文字列のサイズが不定なのでうまくいきませんでした。 数値も全部文字列に変換して全部結合して、文字列を保存するようにすればできそうですが分かりづらいし無駄が多そうです。 なにかいい方法があれば教えて下さいm(_ _)m

Page: 1 |

Re: 数値と文字列の混じったデータの読み書き ( No.1 )
名前:けいし 日時:2009/07/05 12:36

アトリエミュート、開発担当、けいしと申します。 『効率』を重視するのであれば、char の動的配列を作成して、バイナリで書き込むのが良いかと思います。 たとえば、書き込む文字列が char str[] とあった場合、 int len = strlen(str) + 1; char* buff = (char*)malloc(sizeof(int) * 数値データの個数 + sizeof(char) * len); char* p = buff; *((int*)p) = 数値1; p += sizeof(int); *((int*)p) = 数値2; p += sizeof(int); *((int*)p) = 数値3; p += sizeof(int); ... *((int*)p) = 数値n; p += sizeof(int); strcpy(p, str); これで、buffは必要最小限のメモリを確保していることになりますし、 頭から順番に、数値が無駄なく入り、続いて文字列も無駄なく入っていることになります。 どうでしょうか。
Re: 数値と文字列の混じったデータの読み書き ( No.2 )
名前:yama 日時:2009/07/05 14:15

丁寧な回答ありがとうございます。 このあとFileRead_readかなにかで読み込みたいのですが、読み込むバイト数というのが文字列はわからないので とここまで書いて文字数も記録すればいいんだと気づきました。(^^; ありがとうございます。

Page: 1 |