[C++] 276 FLTK : ChatGPTアプリの製作 その5 JSONを読み込む

[M1 Mac, Monterey 12.6.3, clang 13.0.0, FLTK 1.3.8, ChatGPT Plus, NO IDE]

過去の質問回答が入っているJSONファイルを読み込み、追加の質問が出来るようにしました。

今のところJSONファイルのパスを直接入力する仕様ですが、ドラッグ&ドロップやFileChooserにも対応する予定です。

あとは回答からソースコード部分を取り出して、見やすくすることぐらいでしょうか。

void loadCB(Fl_Widget*, void*){
    load = true;
    sendNum = 0;
    input -> value("");
    sysInput -> value("");

    Fl_Text_Buffer* bufferDelete = new Fl_Text_Buffer();
    bufferDelete -> text("");
    output->buffer(bufferDelete);

    const char* jsonLoadFile = jsonInput -> value();
    // JSONファイルの内容をjsonに変換
    std::ifstream ifs(jsonLoadFile);
    json jsonLoadData = json::parse(ifs);
    jsonData = jsonLoadData;

    // jsonをstringに変換
    string jsonLoadString = jsonLoadData.dump(2);

    Fl_Text_Buffer*bufferLoad = new Fl_Text_Buffer();
    bufferLoad -> text(jsonLoadString.c_str());
    jsonDisplay -> buffer(bufferLoad);
    jsonDisplay -> wrap_mode(Fl_Text_Display::WRAP_AT_BOUNDS, 5);

    // 現在の行数を取得
    int lineCount2 = jsonDisplay->buffer()->count_lines(0, jsonDisplay->buffer()->length());

    // 最終行が見えるようにスクロールを設定
    jsonDisplay->scroll(lineCount2, 0);

}