ケース:私はplcから値を読み取るプログラムを作成しています。これらの値を読み取るために、設定タブが入力されます。この設定タブは、すべての値をarraylistに入れます。プログラムが終了すると、彼は自分の設定データをすべて失います。私はこの設定データを保持する機能を作りたいと思います。私はこのようなことを全く知らないし、あなたが回答やサンプルコードを持っているのであれば私は不思議です。私は完全なarraylistを格納することを考えていた、私はこれを開くときに読んで。何かファイル。後で使用するための値の保存
ご覧のとおり、iveは既にメニューを作成しました。
アライリスト名= allData。
arraylistsは、このデータをDataPerLabelという名前のオブジェクトに受け入れます。
設定]タブ:
クラスDataPerLabel:
class DataPerLabel
{
public String labelName;
public String labelAdress;
public String dataType;
public bool monitor;
public DataPerLabel(String labelName, String labelAdress, String dataType, bool monitor)
{
this.labelName = labelName;
this.labelAdress = labelAdress;
this.dataType = dataType;
this.monitor = monitor;
}
public String getLabelName()
{
return labelName;
}
public String getLabelAdress()
{
return labelAdress;
}
public String getDataType()
{
return dataType;
}
public bool getMonitor()
{
return monitor;
}
}
私は今これを試してみたの.iniファイルまたは.txt FIL
でこのArrayListのを保存します:
private void menuItemSave_Click(object sender, System.EventArgs e)
{
string yourFilePath = @"C:\\Users\\Gebruiker\\Desktop\\WindowsHMI\\";
XmlSerializer serializer = new XmlSerializer(typeof(DataPerLabel));
foreach (DataPerLabel configRecord in allData)
{
using (XmlWriter writer = XmlWriter.Create(yourFilePath, new XmlWriterSettings() { Indent = true }))
{
serializer.Serialize(writer, configRecord);
}
}
}
エラーが表示されます。パラメータなしのコンストラクタがないため、すべてのDataPerLabelでシリアル化できません。
、誰もがあなたがXML文字列としてデータを保存することができ、
おかげ
あなたはapp.configを、ユーザの設定ファイルにファイルを保存するになります使用し
[ConfigurationManager](https://msdn.microsoft.com/de-de/library/system.configuration.configurationmanager(v = vs.110).aspx)を使用してください。 –
私は完全に新しいと学生そう、感謝とにかく言ったように、私はそれをチェックさせて! – NielsSchutte
ファイルにarraylist全体を格納する作業は、シリアライズを使用して簡単に実行し、デシリアライズを使用して起動時に再度ロードします。しかし、私はむしろ@MarkusDeibelの設定ファイルにデータを保存することを提案するつもりです。設定タブのデータがユーザーごとに異なる場合は、データをユーザー設定として保存します。設定ファイルに保存するすべてのユーザーに同じデータが保存されます。 – elloco999