アプリ上での設定ファイルに保存、再度ファイル読込み展開したい – プログラミング – Home

アプリ上での設定ファイルに保存、再度フ...
 
通知
すべてクリア

[解決済] アプリ上での設定ファイルに保存、再度ファイル読込み展開したい


わたべ
 わたべ
(@わたべ)
ゲスト
結合: 11年前
投稿: 5
Topic starter  

教えてください。
VC++2010EXを使用ししています。
アプリを作成しています。
アプリ上20個程度のテキストBOXに設定値が入っています。
これを名前を付けて保存し、再度、ファイルを選んで設定をアプリ上に展開するように変
更しております。
ファイル出力に関しては、以下のように作成しましたが、読み込みもOpenFileDialogを使
用して途中まで作成しましたが、その先でReadLine、Readで読込んで、該当するテキスト
ボックスへ反映させるようにすれば良いのかわかりません。
すみませんが、そのあたりについて教えて頂けないでしょうか。
よろしくお願い致します。
SaveFileDialog^ sfdlg=gcnew SaveFileDialog();
sfdlg->Filter=CSVファイル(*.csv) |*.csv;
if(sfdlg->ShowDialog()!=Windows::Forms::DialogResult::OK) return;
StreamWriter^ swriter=gcnew StreamWriter(sfdlg->FileName);
swriter->WriteLine(DateTime::Now + ,);
swriter->WriteLine(eep00->Value + , + eep08->Value + , + eep10->Value + ,
+ eep18->Value + ,);
swriter->WriteLine(eep01->Value + , + eep09->Value + , + eep11->Value + ,
+ eep19->Value + ,);
swriter->WriteLine(eep02->Value + , + eep0a->Value + , + eep12->Value + ,
+ eep1a->Value + ,);
swriter->WriteLine(eep03->Value + , + eep0b->Value + , + eep13->Value + ,
+ eep1b->Value + ,);
swriter->WriteLine(eep2c->Value + , + eep30->Value + , + eep32->Value + ,
+ eep33->Value + ,);
swriter->Close();


引用未解決
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

C++/CLIは使っていないので細かいところはアレですが……。

StreamReaderで1行読み込んで、String.Split()メソッドで分解して、
書き出し時と同じ順番でTextBoxのValueに入れていけばよいかと。

1行目読み込んで最初の要素は日時として読み飛ばし。
2行目読み込んで分解して、最初の要素はeep00->Valueに、2番目の要素はeep08->Value
に、3番目の要素はeep10->Valueに、4番目の要素はeep18->Valueに。
3行目読み込んで分解して……というように。

ちなみに、この場合TextBoxの入力文字に','があると分解時に破綻しますのでご注意を。

http://msdn.microsoft.com/ja-jp/library/system.string.split%28v=vs.110%29.aspx


返信引用
わたべ
 わたべ
(@わたべ)
ゲスト
結合: 11年前
投稿: 5
Topic starter  

ありがとうございます。
String.Splitを用いて、分割するとありますが分割したあとにどの様にテキストへ展開す
るのでしょうか。
1文字ずつで初めて見ましたが、1文字だと連結しないとならなくなり、Strcatで連結し
ようとするとcharからchar*に変換できませんと出てしまいます。
すみませんが、もう少し申し訳ありませんが具体的に教えて頂けますでしょうか。


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

>すみませんが、もう少し申し訳ありませんが具体的に教えて頂けますでしょうか。

最初に回答した通り、C++/CLIは使っていないので検索で見つけたものくらいです。
# よって、回答待ちするより適切なキーワードで自分で検索した方が早いです。
.NET FrameworkでC#は使っているので、C++/CLIでもある程度は応用効くだろう。という
程度で回答しているだけなんですけどね。

>String.Splitを用いて、分割するとありますが分割したあとにどの様にテキストへ展開す
>るのでしょうか。
>1文字ずつで初めて見ましたが、1文字だと連結しないとならなくなり、Strcatで連結し
>ようとするとcharからchar*に変換できませんと出てしまいます。

「C++/CLI split」で検索してみると、
http://imagingsolution.blog107.fc2.com/blog-entry-204.html
とか見つかります。
CSVの読み込み例がありますね。

「C++/CLI CSV 読み込み」でもいくつか見つかります。

それぞれの文字列に分割できれば、後はTextBoxへの設定となるでしょうが……同じように
検索してみれば例が見つかるでしょう。


返信引用
みい
 みい
(@みい)
ゲスト
結合: 22年前
投稿: 65
 

Splitは区切り文字列を指定して「文字列分解」するものです。
Srringのarrayに区切り毎に文字列が入りますので、連結する必要はないです。

<ex.>
array<wchar_t>^ Separator ;
array<String^>^ Split ;
Separator = gcnew array<wchar_t>{','};
Split = 文字列->Split(Separator);

Split[0],Split[1],…に「,」区切り単位の文字列が入ります。


返信引用
わたべ
 わたべ
(@わたべ)
ゲスト
結合: 11年前
投稿: 5
Topic starter  

ありがとうございました。
何とか読み込みもできました。

また、よろしくお願い致します。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました