質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

2回答

1196閲覧

C++Builder ファイル読み込み時にエラーが発生する

Hakua

総合スコア6

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/03/02 07:04

C++Builderを使用して数値の解析ソフトウェアを作っているのですが、112KBのファイルを9個同時に読み込むプログラムで、ファイルを読み込もうとすると 「プロジェクトproject1は例外クラスEStringListError(メッセージ'リストのインデックスが範囲を超えています(1)')を送出しました。」 というエラーが発生し、解決策が分からずに困っています。下のコードのnは0~8が入ります。ちなみに45.6KBのファイルではエラーは出ずに読み込めました。

C++

1void __fastcall TForm1::ReadFiles(int n) 2{ 3 OpenDialog1->Options << ofAllowMultiSelect; 4 int i, j; 5 int header_num = 22; 6 7 TStringList* file = new TStringList(); 8 TStringList* tsv = new TStringList(); 9 10 file->LoadFromFile(OpenDialog1->Files->Strings[n]); 11 12 tsv->Delimiter = '\t'; 13 14 for(i=header_num; i<(file->Count); i++) 15 { 16 tsv->DelimitedText = file->Strings[i]; 17 18 str[i-(header_num)][n+2] = tsv->Strings[1].ToDouble(); 19 StringGrid1->Cells[n+3][i-(header_num)+1] 20 = FormatFloat("0.00000;;0",str[i-(header_num)][n+2]); 21 } 22 23 delete tsv; 24 delete file; 25 26}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

外してたらごめんですが・・・StringGrid1は12行ありますか? また、カラム数は合っていますか? Cの場合、0から始まりますよd^^

投稿2018/03/02 10:35

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

取り敢えずReadFilesの中身全部をtry~catchで囲って、ステップ実行してみたらどうでしょうか?どこで、例外が出ているのかがわかるはず。

投稿2018/03/02 08:02

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問