こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

StreamReaderで読み込んだテキストの行数

テキストファイルを読み込んで行数文のクラスの配列を宣言したいと思っているのですが、


Wireless_unit Wireless_unit[32];
array<Wireless_unit_str^>^ Wireless_ID_str02 = gcnew array<Wireless_unit_str^>(32);


行数がわからないので、StreamReader^で宣言したreadで知る方法はありませんでしょうか?



下のような関数でファイルを読み込んでいます。

private: bool LoadCsvFile02( String^ path ) {


StreamReader^ reader = gcnew StreamReader( path,
System::Text::Encoding::GetEncoding("shift-jis"));

----(中略)------------------------------------------------

投稿日時 - 2012-04-27 11:38:41

QNo.7443919

すぐに回答ほしいです

質問者が選んだベストアンサー

アクセス自体はふつーの配列と同じように行えます。

投稿日時 - 2012-04-27 14:18:15

お礼

回答頂きありがとうございます!。


こんな感じのやり方でできました。助かります!

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);

投稿日時 - 2012-04-27 14:36:30

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

そーゆーのを事前に知らなくてもいいように動的配列クラスが存在します。
とりあえずListジェネリッククラスを見とけばいいでしょう。
#このところこればっか言ってるような気がする

投稿日時 - 2012-04-27 11:46:58

お礼

回答頂きありがとうございます!  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";

}

投稿日時 - 2012-04-27 13:27:59

あなたにオススメの質問