【发布时间】:2019-09-24 15:23:58
【问题描述】:
我正在编写一个程序,将这三个数组移动到一个数组中,然后将其保存在一个二进制文件中。然后程序应该打开并读取文件,修剪不应该存在的字符并将信息移回正确的数组中。删除字符和移动信息是我遇到的问题,它目前只打印到一个数组。如果有人可以提供帮助,那就太好了,代码如下(抱歉,任何格式/拼写错误,太晚了)
保存信息:
private void BtngameSave_Click(object sender, EventArgs e)
{
string FileName = "mygames.dat";
SaveFileDialog SaveBinary = new SaveFileDialog();
DialogResult sr = SaveBinary.ShowDialog();
if (sr == DialogResult.OK)
{
FileName = SaveBinary.FileName;
}
try
{
using (Stream stream = File.Open(FileName, FileMode.Create))
{
BinaryFormatter bin = new BinaryFormatter();
for (int i = 0; i < ptr; i++)
{
save[i] = gameQueueTitle[i] +"*"+ gameQueueGenre[i] +"*"+ gameQueuePlat[i];
bin.Serialize(stream, save[i]);
}
MessageBox.Show("File saved");
}
}
catch (IOException)
{
MessageBox.Show("The Save Binary Stream did not work");
}
}
打开保存的文件:
private void BtngameOpen_Click(object sender, EventArgs e)
{
string FileName = "mygames.dat";
OpenFileDialog OpenBinary = new OpenFileDialog();
DialogResult sr = OpenBinary.ShowDialog();
if (sr == DialogResult.OK)
{
FileName = OpenBinary.FileName;
}
ptr = 0;
try
{
using (Stream stream = File.Open(FileName, FileMode.Open))
{
BinaryFormatter bin = new BinaryFormatter();
while (stream.Position < stream.Length)
{
string rec = bin.Deserialize(stream).ToString();
gameQueueTitle[ptr] = rec;
ptr++;
}
SortList();
DisList();
}
}
catch (IOException)
{
MessageBox.Show("Couldn't open the binary file");
}
}
【问题讨论】:
-
与其进行所有的复制和移动,不如定义一个包含 3 个列表(或数组)的类并将其序列化。完成。
-
rec.Split('*')
标签: c# arrays string binaryformatter