[英]Issue with writing to a text file
我正在编写一个想要添加Surfer
(该类需要四个字符串, FirstName
, LastName
, Dob
, Country
)。 (我不使用DateTime
因为虽然使用它可能是更好的做法,但对于该项目不是必需的。)然后,我想将刚创建的类写入文本文件,并且为此使用了格式化的字符串。 我有两个问题。
它没有将Dob
或Country
写入文本文件。
我不确定如何将每个条目放在新行中。 (我曾经尝试\\ n我的FileFormat字符串的结尾和seperately在我的字符串的结尾toFile
。
我尝试执行此操作的代码是
public class Surfer
{
protected string SurferFirstName { get; set; }
protected string SurferLastName { get; set; }
protected string SurferDob { get; set; }
protected string SurferCountry { get; set; }
public Surfer() { }
public Surfer(string surferFirstName, string surferLastName, string surferDob, string surferCountry)
{
SurferFirstName = surferFirstName;
SurferLastName = surferLastName;
surferDob = SurferDob;
surferCountry = SurferCountry;
}
public override string ToString()
{
return string.Format("Surfer name: {0} {1} Surferdob: {2} \n Country: {3}", SurferFirstName, SurferLastName, SurferDob, SurferCountry);
}
//for display in the textblock, virtual for inheritance
/* public virtual string vehicleDetails()
{
return string.Format("Make:{0,40} \nModel:{1,40} \nPrice:{2,40} \nYear: {3,40} \nColour: {4,40}, \nMileage: {5,40} \nDescription: {6,40} \nEngine: {7,40}", Make, Model, Price, Year, Colour, Mileage, Description, Engine);
}*/
//for formatting to a text file
public string FileFormat()
{
return string.Format("{0},{1},{2},{3} \n", SurferFirstName, SurferLastName, SurferDob, SurferCountry);
}
}
我的代码是WindowAdd.cs
private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
//reading in from text boxes
string fName = txtbxFirstName.Text;
string lName = txtbxLastName.Text;
string dob = txtbxDob.Text;
string country = txtbxCountry.Text;
//basic validation
if (fName.Length <2 || lName.Length <2 )
{
MessageBox.Show("first and last name must be entered");
}
else if(dob.Length <10 || dob.Length>10)
MessageBox.Show("Enter dob in the correct format (dd/mm/yyyy)");
else if(country.Length <3)
MessageBox.Show("Enter a valid country");
else
{
try
{
//sets mainWindow
MainWindow mainWindow = new MainWindow();
//creates new surfer class
Surfer newSurfer = new Surfer(fName, lName, dob, country);
//adds to observable collection
mainWindow.surfers.Add(newSurfer);
//uses FileFormat from the Surfer Class to format in order to add to text file
string toFile = newSurfer.FileFormat();
//append to Surfers.Text
File.AppendAllText("Surfers.Text", toFile);
//closes window
this.Close();
}
我在文本文件中得到的结果是这样的
约翰·巴里(John,Barry),快乐吉尔莫(Gilmore),
这是两个尝试的条目
基本验证正在运行,因此可以从xaml中读取数据。 我知道我可以使用File.WriteAllLines
并编写代码以通过保存按钮将可观察到的集合中的每个元素发送到文本文件,但是如果可能的话,我宁愿以与尝试的方法类似的方式进行操作,在此保存一次只输入一个文本文件,而不会删除现有元素。
您的构造函数将变量分配给Dob和Country的方向错误。 您将属性分配给参数,而不是参数分配给属性。
public Surfer(string surferFirstName, string surferLastName, string surferDob, string surferCountry)
{
SurferFirstName = surferFirstName;
SurferLastName = surferLastName;
surferDob = SurferDob;
surferCountry = SurferCountry;
}
对于新行,请使用Quantic上面建议的Environment.NewLine
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.