C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■102412 / 1階層)  C# Visual Studio csvファイルの読み込み
□投稿者/ KOZ (410回)-(2023/09/24(Sun) 12:35:36)
No102409 (ka さん) に返信
> 現在こんな感じでlabelに反映しているのですが、これだと直接書き込まなければいけず、見にくくなるのと効率も良くないのでCSVファイルを使おうと思いました。


XML とかにしたほうがいいんじゃないですか?

たとえば、こんな xmlファイル(forms.xml)を用意して

<?xml version="1.0" encoding="utf-8" ?>
<forms>
  <form name="Form1">
    <label name="label1" text="キャー" />
    <label name="label2" text="のび太さんの" />
    <label name="label3" text="〇〇〇" />
  </form>
  <form name="Form2">
    <label name="label1" text="悪いなのび太" />
    <label name="label2" text="この脱出ポッドは" />
    <label name="label3" text="3人用なんだ" />
  </form>
</forms>


こんな関数を作って

public static Dictionary<string, string> GetLabelValues(string formName) {
    var dic = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml(System.IO.File.ReadAllText(@"forms.xml"));
    XmlElement formElement =
        (XmlElement)xmlDoc.SelectSingleNode($"/forms/form[@name='{formName}']");
    foreach (XmlElement labelElement in formElement.SelectNodes("label")) {
        string labelName = labelElement.GetAttribute("name");
        string labelText = labelElement.GetAttribute("text");
        dic.Add(labelName, labelText);
    }
    return dic;
}

こう読み込みます。

private void Form1_Load(object sender, EventArgs e) {
    var dic = Program.GetLabelValues(this.Name);
    foreach (var kp in dic) {
        var ctl = Controls.Find(kp.Key, true);
        if (ctl.Length > 0) {
            ctl[0].Text = kp.Value;
        }
    }
}


> 調べてもこの環境ではない方ばかりでしたので教えていただけると幸いです。

似た環境ってどこにでもありそうですけど・・・

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←C# Visual Studio csvファイルの読み込み /ka 返信無し
 
上記関連ツリー

C# Visual Studio csvファイルの読み込み / ka (23/09/24(Sun) 00:24) #102409
Re[1]: C# Visual Studio csvファイルの読み込み / WebSurfer (23/09/24(Sun) 07:24) #102410
Re[1]: C# Visual Studio csvファイルの読み込み / WebSurfer (23/09/24(Sun) 07:32) #102411
C# Visual Studio csvファイルの読み込み / KOZ (23/09/24(Sun) 12:35) #102412 ←Now
Re[1]: C# Visual Studio csvファイルの読み込み / furu (23/09/25(Mon) 09:29) #102414
│└ Re[2]: C# Visual Studio csvファイルの読み込み / WebSurfer (23/09/25(Mon) 10:23) #102415
│  └ Re[3]: C# Visual Studio csvファイルの読み込み / furu (23/09/25(Mon) 20:20) #102420
Re[1]: C# Visual Studio csvファイルの読み込み / radian (23/09/26(Tue) 09:43) #102421

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信