- Я рекомендую определить класс, который будет содержать gameQueueTitle, gameQueueGenre, gameQueuePlat: это устранит необходимость в 3 отдельных списках, и вам не нужно бояться несоответствия, так как в одном списке отсутствует элемент, потому чтоошибки или что-то вроде этого.Вам также больше не нужен ptr, потому что в списке есть свойство count:
public class GameInfo
{
public string Title
{
get;
set;
}
public string Genre
{
get;
set;
}
public string Plat
{
get;
set;
}
}
Чтобы ответить на ваши вопросы, я быстро переписал ваши функции (если я правильно понял, что ваш вопрос правильно, ваш код не работает):
Сохранение информации:
private void BtngameSave_Click(object sender, EventArgs e)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = "mygames.dat";
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
using (FileStream fs = new FileStream(dialog.FileName, FileMode.OpenOrCreate))
{
using (StreamWriter writer = new StreamWriter(fs))
{
for(int i = 0; i < ptr; ++i)
{
writer.WriteLine(gameQueueTitle[i] + "*" + gameQueueGenre[i] + "*" + gameQueuePlat[i]);
}
}
fs.Close();
}
MessageBox.Show("File saved");
}
catch
{
MessageBox.Show("Couldn't save the binary file");
}
}
}
Открытиесохраненный файл:
private void BtngameOpen_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
using (FileStream fs = new FileStream(dialog.FileName, FileMode.OpenOrCreate))
{
using (StreamReader reader = new StreamReader(fs))
{
ptr = 0;
for (ptr = 0; !reader.EndOfStream; ++ptr)
{
string line = reader.ReadLine();
string[] values = line.Split('*');
gameQueueTitle[ptr] = values[0];
gameQueueGenre[ptr] = values[1];
gameQueuePlat[ptr] = values[2];
}
}
fs.Close();
}
MessageBox.Show("File processed");
}
catch
{
MessageBox.Show("Couldn't open the binary file");
}
}
}
Сохраняйте или открывайте файл только в том случае, если результат диалога в порядке.Ваш код сохраняет / читает файл, даже если пользователь отменяет диалог.Никто из пользователей не ожидает такого поведения.