[C++] arrayクラスのデータを構造体にコピーする方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
fkfk

[C++] arrayクラスのデータを構造体にコピーする方法

#1

投稿記事 by fkfk » 9年前

CSVファイルを読み込み、その中にあるデータをarray配列に一度代入しています。
そのarray配列の値を、他でも使用する際に分かりやすくするため、
Public定義した構造体にコピーしたいと考えていますが、どのようにすればよいかわかりません。
何かアドバイスいただけないでしょうか?よろしくお願いいたします。

コード:

 
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: ここにコンストラクタ コードを追加します
			//
		}

		ref class readsetting{
			String ^param1;
			String ^param2;
			int ^param3;
			int ^param4;
			String ^param5;
			String ^param6;
		}READSETTING, ^LPREADSETTING;
		
		//中略
		
			// アプリケーション実行フォルダを捜索
			String ^s_app_path = System::IO::Directory::GetCurrentDirectory();

			//行ごとのデータに分割してCSVファイルを読み込む
			array<String^>^ RowData = System::IO::File::ReadAllLines(s_app_path + "/" + s_SetCsv);

			//全データ格納用の配列を確保(配列の配列)
			array<array<String^>^>^ CSVData = gcnew array<array<String^>^>(RowData->Length);
				 
			for (int i = 0; i < RowData->Length; i++){
				//行のデータをカンマで区切って配列に分割する。
				CSVData[i] = RowData[i]->Split(',');
			}
			
			// ここでCSVData の内容を READSETTING に渡したい

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: [C++] arrayクラスのデータを構造体にコピーする方法

#2

投稿記事 by みけCAT » 9年前

オフトピック
fkfk さんが書きました:何かアドバイスいただけないでしょうか?よろしくお願いいたします。
C++/CLIのコード(?)をC++と騙るのは、誤解を招くかもしれないと思います。
私は印象を悪くしました。
fkfk さんが書きました:ここでCSVData の内容を READSETTING に渡したい
予想ですが、構造体の型に直接データを格納することはできないのではないでしょうか?
代わりにREADSETTING型のデータを格納するarray配列を宣言/定義し、そこにデータを適切に変換して格納するといいかもしれません。
数字と文字列を相互変換する | ITLAB51.COM
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

fkfk

Re: [C++] arrayクラスのデータを構造体にコピーする方法

#3

投稿記事 by fkfk » 9年前

みけCAT さんが書きました:
オフトピック
fkfk さんが書きました:何かアドバイスいただけないでしょうか?よろしくお願いいたします。
C++/CLIのコード(?)をC++と騙るのは、誤解を招くかもしれないと思います。
私は印象を悪くしました。
fkfk さんが書きました:ここでCSVData の内容を READSETTING に渡したい
予想ですが、構造体の型に直接データを格納することはできないのではないでしょうか?
代わりにREADSETTING型のデータを格納するarray配列を宣言/定義し、そこにデータを適切に変換して格納するといいかもしれません。
数字と文字列を相互変換する | ITLAB51.COM

返信ありがとうございます。
また、よくわかっておらず、申し訳ありません。C++として理解していました。
以後、書いている言語を理解して、質問したいと思います。

>代わりにREADSETTING型のデータを格納するarray配列を宣言/定義し、そこにデータを適切に変換して格納するといいかもしれません。

READSETTING構造体が複数できてしまうので、ちょっとイメージとは違っているのかと思います。
現在Stringで取得しているものを都度変更するか、1つずつ指定して格納するように検討したいと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: [C++] arrayクラスのデータを構造体にコピーする方法

#4

投稿記事 by softya(ソフト屋) » 9年前

毎回C++/CLIだと水を指すような事を書いておりますが、C++/CLIで.NET FrameWorkを利用してGUIを作成することはマイクロソフトとしてはVC++2012以降は非推奨の物となります。メインストリームは何と言ってもC#と.NET FrameWorkです。
書籍を調べてもらうと分かりますが、VC++2010を最後にC++/CLIを使う入門書籍は出ていないはずです。
今後資料の少ない事で苦労するのを分かっていて突き進むのは構いませんが、もし知らなかったのであれば今のうちに方向転換をおすすめします。

「補足」
私のおすすめは、純粋なC++にしてGUI部分をQtなどに変えるか、C#に移るかです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

fkfk

Re: [C++] arrayクラスのデータを構造体にコピーする方法

#5

投稿記事 by fkfk » 9年前

CSVファイルからの読み込みは、うまくいかなかったため、
最終的にxmlを使用するクラスを作り、そこから読み込みをするようにしました。

回答いただきましてありがとうございます。

C++Cliを使用することは現状避けられないため、
本プログラム完成後は、C#でも同様の処理のものを作成してみたいと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る