所以我遇到了什么问题-我试图创建一个复杂的(对我来说很复杂)的银行管理系统。它从一个人那里获取各种数据。它需要字符串和整数。我设法将数据存储到文本文件中。
文本文件如下所示:
密码:74016 | NAME:任何名字|年龄:18 |姓氏:anylastname |平衡:300 |帐户类型:储蓄帐户|
(此数据在文本文件的一行中)
这是我存储它的方式:
var StoreInFile = new StreamWriter(@"C:\Accounts.txt", true);
StoreInFile.Write("AccountID: " + AccID + " | ");
StoreInFile.Write("NAME: " + _Name + " | ");
StoreInFile.Write("AGE: " + _Age + " | ");
StoreInFile.Write("LASTNAME: " + _LastName + " | ");
StoreInFile.Write("BALANCE: " + Balance + " | ");
StoreInFile.Write("ACCOUNT TYPE: " + accountType + " | ");
StoreInFile.WriteLine(" ");
StoreInFile.WriteLine(" ");
StoreInFile.Close();
现在的问题是如何从中获取数据?我如何将所有这些不同的字符串/整数存储回变量,然后在哪里可以操纵它们?
理想情况下,我只想在登录时输入AccountID,然后它将所有Name,LastName,Age ...等数据自动存储到该行代码中的变量中。希望我的问题清楚。
答案 0 :(得分:0)
var properties = new prop();
var json = JsonConvert.SeralizeObject(properties);
public class prop
{
public string account_id { get; set;}
public string name { get; set;}
public int age { get; set;}
}
这样的事情会帮助你很多。
答案 1 :(得分:0)
您可以使用所使用的属性创建帐户类:
class Account
{
public int Id { get; set;}
public string Name { get; set;}
public int Age{ get; set;}
public string Lastname { get; set;}
public int Balance { get; set;}
public string AccountType { get; set;} // this is better to be enum but your example shows you have stored string
}
然后,您可以创建Account
类的实例,并读取文件并用|
拆分文件,然后设置其属性(在需要时解析为int):
string[] data = File.ReadAllText("filepath.txt").Split('|');
Account account = new Account();
foreach (string item in data)
{
string[] sitem = item.Split(':');
switch(sitem[0].Trim())
{
case "AccountID":
account.Id = int.Parse(sitem[1]); break;
case "Name":
account.Name = int.Parse(sitem[1]); break;
....
}
}
答案 2 :(得分:0)
实际上,我建议您将其保留为Json / XML格式。 但是也许 BinaryFormatter 在这里可以帮助您使用一些示例;
class Program {
static void Main (string[] args) {
// Create Object
Account account = new Account {
Id = 100,
Name = "Berkay"
};
// You can use BinaryFormatter
IFormatter formatter = new BinaryFormatter ();
Stream stream = new FileStream ("D:\\account.txt", FileMode.Create, FileAccess.Write);
formatter.Serialize (stream, account);
stream.Close ();
stream = new FileStream ("D:\\account.txt", FileMode.Open, FileAccess.Read);
Account readAccount = formatter.Deserialize(stream) as Account;
System.Console.WriteLine(readAccount.Id);
System.Console.WriteLine(readAccount.Name);
Console.ReadLine();
}
}
// Serializable attribute
[Serializable]
public class Account {
public int Id { get; set; }
public string Name { get; set; }
}