У меня есть код, который должен принимать данные о погоде определенного дня (и определенного города) от пользователя и сохранять эти данные в текстовом файле, а затем отображать эти данные для определенных городов из текстового файла.Я использовал ФОРМЫ.
Как изменить код для правильного чтения текстового файла и НЕ отображать каждый вход 3 раза каждый?Я добавил соответствующие методы, которые я использовал в текстовых файлах:
private void btnCapture_Click(object sender, EventArgs e)
{
string city = cbCity.SelectedItem.ToString();
DateTime date = dtp.Value;
int minTemp = Convert.ToInt32(nudMinTemp.Value);
int maxTemp = Convert.ToInt32(nudMaxTemp.Value);
int precipitation = Convert.ToInt32(nudPrecip.Value);
int humidity = Convert.ToInt32(nudHumid.Value);
int windSpeed = Convert.ToInt32(nudWindSpeed.Value);
using (StreamWriter sw = new StreamWriter("myFile.txt"))
{
sw.WriteLine(city + Environment.NewLine + date +
maxTemp + Environment.NewLine + precipitation...);
sw.Close();
}
WeatherDetails w = new WeatherDetails(city, date, minTemp...)
w.ReadData();
MessageBox.Show("Your data has been Captured");
}
//Read data in WeatherDetails Class:
public void ReadData()
{
StreamReader SR = new StreamReader("myFile.txt");
while (!SR.EndOfStream)
{
city = SR.ReadLine();
date = DateTime.Parse(SR.ReadLine());
minTemp = int.Parse(SR.ReadLine());
maxTemp = int.Parse(SR.ReadLine());
precipitation = int.Parse(SR.ReadLine());
humidity = int.Parse(SR.ReadLine());
windSpeed = int.Parse(SR.ReadLine());
WeatherDetails newOne = new WeatherD...
ci.Add(newOne);
}
SR.Close();
}
private void btnDisplay_Click(object sender, EventArgs e)
{
city = cbCity.SelectedItem.ToString();
DateStart = dtpStart.Value;
DateEnd = dtpEnd.Value;
//Displaying data to RTB
private void btnDisplay_Click(object sender, EventArgs e)
{
city = cbCity.SelectedItem.ToString();
DateStart = dtpStart.Value;
DateEnd = dtpEnd.Value;
//Displaying data to RTB
foreach (WeatherDetails wd in WeatherDetails.ci)
{
rtbDisplay.Text += ("The Weather Report for " + cbCity.SelectedItem.ToString() + " , accesssed on " + wd.date.ToString() + "\n" +
"\n" +
"Maximum Temperature: " + wd.maxTemp + "\n" +
"Minimum Temperature: " + wd.minTemp + "\n" +
"Precipitation: " + wd.precipitation + "\n" +
"Humidity: " + wd.humidity + "\n" +
"Wind Speed: " + wd.windSpeed + "\n" +
"-------------------End OF Report---------------------");
Проблема заключается в том, что он отображает введенные данные 3 раза каждый. Так что, если я введу данные для одного города 12-го и 14-го числаМожет, он будет отображать 12-й 3 раза и отображать 14-й 3 раза.