我正在編寫一個程序,其中有兩個具有相同數據的列表框,但一個列表框項目更新時帶有學生姓名和他們的總分數,另一個與學生一起更新姓名和學生姓名旁邊的每個個人評委分數。一切都很好,但現在我卡住了...我有兩種方法Save()和SaveAs()其中Save()自動將數據寫入「FormData.bin」並且SaveAs()允許用戶輸入自己的文件名。將新數據添加到當前打開的文件的方法C#
是否可以重新編寫Save()方法,這樣當我單擊保存時,它將當前數據保存到在MS Word中打開的文件中,當您在文檔中輸入時只需單擊保存即可添加新文件鍵入數據到當前文件。這是我寫的Save()方法。
public void SaveEntry()
{
int itemsCount = Math.Min(lstbxStudents.Items.Count, lstbxStudentScore.Items.Count);
saveFileDialog1.InitialDirectory = Application.StartupPath;
saveFileDialog1.FileName = "FormData.bin";
{
try
{
using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create))
using (BinaryWriter Save = new BinaryWriter(fs))
{
Save.Write(cmbbxAge.Text);
Save.Write(cmbbxBelt.Text);
Save.Write(cmbbxCategorie.Text);
Save.Write(cmbbxGender.Text);
Save.Write(cmbbxGup.Text);
Save.Write(txtJudge1.Text);
Save.Write(txtJudge2.Text);
Save.Write(txtJudge3.Text);
Save.Write(txtJudge4.Text);
Save.Write(txtJudge5.Text);
Save.Write(txtOperator.Text);
Save.Write(txtPos1.Text);
Save.Write(txtPos2.Text);
Save.Write(txtPos3.Text);
Save.Write(txtPos4.Text);
Save.Write(txtPos5.Text);
for (int i = 0; i < itemsCount; i++)
{
Save.Write(lstbxStudents.Items[i].ToString());
Save.Write(lstbxStudentScore.Items[i].ToString());
}
Save.Close();
fs.Close();
}
}
catch (Exception error)
{
MessageBox.Show(error.Message, "CTSD Forms");
}
}
}
預先感謝您
這裏是形式
你能說清楚你想改進/有麻煩嗎?大多數程序(包括Word)不會「更新」現有文件,而是完全覆蓋隨着內存中加載的數據(Save/SaveAs)。所以「像Word一樣」並不完全清楚地解釋問題。 –
您確定要將文本保存到二進制文件嗎?將它退出是一個問題。 –
如果您想保存_而不是_Save As_,則不需要對話框。你保留你打開的文件的路徑,並將它作爲FileStream()的第一個參數。所有'SaveFileDialog'確實讓用戶通過對話框指定文件路徑。 –