
環境はWIN98 VC++6.0 MFCです。
見よう見真似で以下のようにしたら、配列のデータがXXX.txtファイルに保存されました。
それじゃってことで、XXX.txtファイルからデータを取り出し、元通りに配列aa[n]に格納するにはどうすれば良いのですか?
そう言うことはやれるのですか?
void CAbcDlg::OnButton4()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CStringstr;
LPTSTRpszBuf;
longsize;
CFilefpw( "XXX.txt", CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive );
for(n=0;n<10;n++){
str=aa[n];
size = str.GetLength();
fpw.Write( &size, sizeof( long ) );
//バッファの確保
pszBuf = str.GetBuffer( size );
//書き込み
fpw.Write( pszBuf, size );
//バッファの開放
str.ReleaseBuffer();
}
}
No.2ベストアンサー
- 回答日時:
Write を Read に変えればOK
modeCreate | modeWrite → modeRead
fpw.Read( &size, sizeof(long) );
pszBuf = str.GetBuffer( size );
fpw.Read( pszBuf, size );
てな感じで。
回答ありがとうございます。
うまくいきました。
<補足>
参考に別途分かったことを書いておきます。
void save() {
CFile file(ファイル名, CFile::modeWrite|CFile::modeCreate);
CArchive ar(&file, CArchive ::store);
for (int i = 0; i < 10; i++) {
ar << aaa[i];
}
}
void load() {
CFile file(ファイル名, CFile::modeRead);
CArchive ar(&file, CArchive ::load);
for (int i = 0; i < 10; i++) {
ar >> aaa[i];
}
}
No.1
- 回答日時:
文字列長と文字列を書き込んでいるわけですから,
読み込むときは,まず文字列の長さを読み込み,続いてその長さの分だけ文字列を読み込むことになります。
これをファイルの終端まで繰り返せばいいです。
読み込みには CFile::Read を使ってください。
ただ,拡張子 txt のファイルに文字列長をバイナリで書き込むのはあまりよろしくないと思います。
配列の各要素を1行に書き出していくほうがいいのではないかと。
この場合読み込むときは1行ずつ読み込んで配列に入れていくことになります。
この方法にするなら,MFC の CStdioFile や C++ 標準ライブラリの fstream などを使ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- その他(プログラミング・Web制作) pythonで変数にオブジェクトを代入するにはどうしたらよいでしょうか 2 2023/08/20 20:36
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSにてCSV読み込みし比較
-
VBScriptの配列は、要素数を指...
-
バイナリファイルでOutOfMemory...
-
バイナリファイルの一部分をカ...
-
テキストファイルを後ろから読...
-
RGBのバイナリデータをCImageに...
-
ファイル入力のデータを構造体...
-
VBAでテキストファイルを複数開...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
ExcelブックをGoogleスプレッド...
-
エクセルVBAで一つ上の階層...
-
【VBA】テキストファイルを指定...
-
実行ファイルのパスを取得したい
-
VB6でUTF-8ファイルの読取りを
-
同じファイル名 上書きしないフ...
-
【マクロ】ファイル名の日付に...
-
会社のネットワーク上のファイ...
-
ファイルサーバ上のファイルが...
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイト型のデータを16進表記で...
-
バイナリファイルの一部分をカ...
-
バイナリファイルでOutOfMemory...
-
DXFファイルをVBで取り込み、図...
-
Cで2次元配列にCSVファイルを...
-
配列操作について
-
日本語を配列に収め、そして表...
-
VBScriptの配列は、要素数を指...
-
テキストファイルを後ろから読...
-
CSVファイルによる検索の高速化
-
グレースケール画像の画素値を得る
-
ファイルをメモリに出力する方法
-
RGBのバイナリデータをCImageに...
-
C++による ファイルの読み込み
-
日本語混じりのファイルをラン...
-
VBAでテキストファイルの改行を...
-
VBでバイナリファイルのコピー...
-
[VBS] 16進数でバイナリファイ...
-
C言語でのファイル読み込み
-
Unicodeのファイル読み込みがう...
おすすめ情報