VC++6.0でMFCを使ってのCSVファイル入力を検討しています。
シリアライズ関数内でReadStringを使って1行づつ入力しているのですが、ファイル終端に達した後の処理として、もう一度ファイル先頭から読み直しをしたいのですが、うまくいきません。どうすれば、読み直しができるのでしょうか?
処理の流れは次のようにしました。
void CDispDoc::Serialize(CArchive& ar)
{
CStringline;
if (ar.IsStoring())
{
}
else
{
while(ar.ReadString (line)) { 何かの処理 }
//whileを出たところでファイル先頭からの読み直しをしたい
次の2点を試したのですが、うまくいきません。
(1)ファイルポインタを戻してから入力する。
CFile* fp = ar.GetFile ();
fp->SeekToBegin ();
ar.ReadString (line);//この方法ではFalseが戻る
(2)新たなArchiveオブジェクト作って使う。
CFiletheFile(ar.GetFile()->GetFilePath (), CFile::modeRead);
CArchive arc(&theFile, CArchive::load);
arc.ReadString (line);//この方法では共有違反と言われる
ReadStringでは読み直しができないのでしょうか?
No.1ベストアンサー
- 回答日時:
共有違反はCDocuemntクラスのOnOpenDocument関数で
CFile::shareDenyWriteで開いているためだと思われます
Serializeの引数 arかCFileオブジェクトを取得してこのファイルオブジェクトを操作してからCArchiveを再構築するといった手順でしょう
CFile* pFile = ar.GetFile();
pFile->SeekToBegin();
CArchive arc( pFile, CARchive::load );
arc.ReadString( line );
arc.Close();
といった具合です
判りました、
新たに作るのは、CArchiveオブジェクトだけで良かったのですね。
おかげさまで解決しました。ありがとうございました。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(社会・学校・職場) 誰か聞いてください。 社会人6年目ですが、私はポンコツすぎますか? 上司にとあるAファイルの数式を全 1 2023/08/10 18:25
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
SGファイルって何ですか?
-
CSVファイルへの保存の際、デー...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
[VBScript]ファイルの入出力を...
-
VB6でのファイル作成方法
-
VBに、Cのincludeのようなもの...
-
大きいサイズのテキストファイ...
-
fopenできる上限の変更
-
同じ名前のファイルを作った場...
-
■ 移植性のないポインタ変換に...
-
プログラムで文字をBMPファイル...
-
C言語のfopenについて教えてく...
-
CSVファイル
-
Javascript で INI の読み書き
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
ファイルを記録してあるセクタ...
-
テキストファイルの最終行を削...
-
SGファイルって何ですか?
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
VBに、Cのincludeのようなもの...
-
fopenできる上限の変更
-
グローバル変数のよくない使い...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
ハッシュの計算時間について
-
C言語のfopenについて教えてく...
-
Javascript で INI の読み書き
-
Excelマクロでの再読込み方法
おすすめ情報