- ベストアンサー
テキストファイル読み込み行数をStreamReaderで宣言したreadで知る方法は?
- StreamReaderでテキストファイルを読み込む際に、行数を知る方法を教えてください。
- テキストファイルを読み込んで行数分のクラスの配列を宣言したいです。どのように実装すれば良いでしょうか?
- StreamReaderを使用してファイルを読み込む際に、読み込む行数を事前に知る方法があるか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
アクセス自体はふつーの配列と同じように行えます。
その他の回答 (1)
- D-Matsu
- ベストアンサー率45% (1080/2394)
そーゆーのを事前に知らなくてもいいように動的配列クラスが存在します。 とりあえずListジェネリッククラスを見とけばいいでしょう。 #このところこればっか言ってるような気がする
お礼
回答頂きありがとうございます! Listジェネリッククラスというのはとても便利そうですね。 追加で質問させて頂きたいのですが、 List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>(); このような”Wireless_unit_sig”クラスの配列を作ってみました。 このときに、このクラス内にある Wireless_ID_str02->day_name Wireless_ID_str02->time などなどの変数に値を代入したい場合はどのようにしたらよいのでしょうか? どうぞ、よろしくお願い致します。 クラスの内容は次のようなものです。 ref class Wireless_unit_sig { private: public: String^ day_name; String^ month; String^ day; String^ time; String^ year; String^ cmd1; String^ cmd2; String^ ID; String^ sig1; String^ sig2; String^ batt_mount; String^ m_rssi; String^ s_rssi; String^ version; public: Wireless_unit_sig() { day_name = "test"; month = "test"; day = "test"; time = "test"; year = "test"; cmd1 = "test"; cmd2 = "test"; ID = "test"; sig1 = "test"; sig2 = "test"; batt_mount = "test"; m_rssi = "test"; s_rssi = "test"; version = "test"; }
お礼
回答頂きありがとうございます!。 こんな感じのやり方でできました。助かります! List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>(); Wireless_unit_sig^ Wireless_unit_sig_temp = gcnew Wireless_unit_sig(); array<String^,2>^ addr_eeprom02 = gcnew array<String^,2>(2000, 2); while(( data = reader->ReadLine()) != nullptr ) { // カンマ区切りで分解 array<String^>^ split = data->Split( separator ); Wireless_unit_sig_temp->day_name = split[0]; Wireless_unit_sig_temp->month = split[1]; Wireless_unit_sig_temp->day = split[2]; Wireless_unit_sig_temp->time = split[3]; Wireless_unit_sig_temp->year = split[4]; Wireless_unit_sig_temp->cmd1 = split[5]; Wireless_unit_sig_temp->cmd2 = split[6]; Wireless_unit_sig_temp->ID = split[7]; Wireless_unit_sig_temp->sig1 = split[8]; Wireless_unit_sig_temp->sig2 = split[9]; Wireless_unit_sig_temp->batt_mount = split[10]; Wireless_unit_sig_temp->m_rssi = split[11]; Wireless_unit_sig_temp->s_rssi = split[12]; Wireless_unit_sig_temp->version = split[13]; Wireless_ID_str02->Add(Wireless_unit_sig_temp); Wireless_unit_sig_temp->m_rssi = split[11]; Wireless_unit_sig_temp->s_rssi = split[12]; Wireless_unit_sig_temp->version = split[13]; Wireless_ID_str02->Add(Wireless_unit_sig_temp);