ソフト起動時にCドライブ直下のSaveFile.txtを読み込みたい

投稿者: Anonymous

現在、embarcadero RAD Studio 10.3でプログラミングを行っています。

ソフトを起動時にCドライブ直下のSaveFile.txtを読み込みたいのですが、エラーが出てしまいます。

void __fastcall TTCP_Client::FormCreate(TObject *Sender)
{

    if(FileExists("c:/SaveFile.txt"))
        ADODataSet1->LoadFromFile("c:/SaveFile.txt");
    else
        StatusBar1->Panels->Items[0]->Text = "Save file does not exist!";

}
//---------------------------------------------------------------------------

このようなコードにしたのですが、ビルドは成功するのですが、デバッグしていくとエラーがでて停止してしまいます。実行でも停止します。
エラー回避方法はどのようにしたらよいですか?

デバッグが停止してしまう時のエラー:

デバッガ例外通知
プロジェクトTCPClient.exe は例外クラス EOLeException (メッセージ ‘指定されたソースから Recordset を作成できません。ソース ファイルまたはストリームの Recordset データは XML あるいは ADTG 形式である必要があります。’) を検出しました。

デバッグが停止してしまう時のエラー

Cドライブ直下に置いたSaveFile.txtの内容:

BKUK12
BKUK34
BKUK56
BKUK78

Cドライブ直下に置いたSaveFile.txtの内容

解決

回答頂きありがとうございます。助かります。
とりあえずこちらのファイル入力機能で現在は十分と感じましたので、内容を変更しました。

using namespace std;

void __fastcall TTCP_Client::FormCreate(TObject *Sender)
{

    #if 0
    if(FileExists("c:/SaveFile.xml"))
        ADODataSet1->LoadFromFile("c:/SaveFile.xml");
    else
        StatusBar1->Panels->Items[0]->Text = "Save file does not exist!";
    #endif

    AnsiString filename = "c:/SaveFile.txt";

    //filename += ".csv";

    ifstream fin;
    fin.open(filename.c_str(), ios::in);

    if( !(fin.fail()) )
    {
        string line;
        getline(fin, line);
        AnsiString str(line.c_str());
        ShowMessage(str);
    }

}

https://github.com/KenjiMaehara/CppChatTCP/blob/3270c6ef1c0baa2b35e905a8dbb1ecc2cd114065/TCPClient/Unit1.cpp

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *