namespace SimpleTextEditor
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnOpenFile_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".txt";
dlg.Filter = "Text documents (.txt) | *.txt";
Nullable<bool> result = dlg.ShowDialog();
if (result==true)
{
string filename = dlg.FileName;
tbEditor.Text = System.IO.File.ReadAllText(filename);
}
}
private void btnSaveFile_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.DefaultExt = ".txt";
dlg.Filter = "Text documents (.txt)|*.txt|Binary Files (.bin)|*.bin";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
string filename = dlg.FileName;
System.IO.File.WriteAllText(filename, tbEditor.Text);
}
}
}
}
回答
首先建立一些佔位二進制擴展:
if (filename.EndsWith(BINARY_EXTENSION))
File.WriteAllBytes(filename, Encoding.UTF8.GetBytes(tbEditor.Text)); // Or choose something different then UTF8
else
File.WriteAllText(filename);
而且裏面:
const string BINARY_EXTENSION = "bin";
在btnSaveFile_Click()
您可以修改保存功能你的btnOpenFile_Click
你可以這樣做:
if (filename.EndsWith(BINARY_EXTENSION))
tbEditor.Text = Encoding.UTF8.GetString(File.ReadAllBytes(filename); // Or choose something different then UTF8
else
tbEditor.Text = File.ReadAllText(filename);
謝謝,這工作! –
將2個不同版本的文本保存爲UTF8有什麼意義?它絕對沒有理由使代碼變得複雜 - 只有相同的TXT代碼和神祕的「二進制」BIN格式。爲了讓回答有些合理,你可能想解釋一下你的「二進制」格式是什麼以及它與另一個格式有什麼不同。 –
@AlexeiLevenkov這就是爲什麼我寫了'//或者選擇了不同於UTF8的東西'這意味着要選擇不同的方法來從文本中「提取」字節。 –
- 1. winforms的簡單文本編輯器?
- 2. 簡單的二進制文本分類
- 3. 簡單的條件格式在Google表格腳本編輯器
- 4. 需要ASP.Net/MVC富文本編輯器
- 5. 二進制文件和保存的遊戲格式
- 6. 二進制文件格式:需要糾錯?
- 7. Javascript將二進制數據保存爲ANSI編碼的文件
- 8. 十六進制爲二進制形式,需要說明什麼?
- 9. 製作一個簡單的文本編輯器
- 10. 簡單的方法來查看和保存文件的二進制文件?
- 11. 將TinyMCE編輯器的文本保存爲XML文件?
- 12. Android中的簡單富文本編輯器
- 13. 在Android中創建一個簡單的文本編輯器
- 14. 使用jQuery(簡單的文本編輯)
- 15. 以編程方式對Word文檔進行簡單的編輯
- 16. 格式化文本編碼在二進制plist
- 17. 保存文本編輯文本
- 18. C:編輯二進制文件
- 19. 編輯和讀取二進制文件?
- 20. 需要存檔[R DMwR 0.2.3.zip版本的二進制窗口
- 21. 二進制文件:如何將.csv保存爲二進制文件.dat
- 22. 需要幫助編輯AngularJS中的一些文本 - 簡單的嵌套段落
- 23. 我需要有關二進制文件
- 24. 如何將簡單的HTML格式保存爲文本框輸入?
- 25. 用save_word2vec_format以二進制格式保存gensim Word2vec模型
- 26. 爲什麼我需要在'noeol'的二進制模式下使用vim工作?
- 27. 以perl格式打印和保存二進制格式的數據
- 28. 簡單的文本編輯器的JRuby調試器選項
- 29. 需要不保存在HTML中的網絡嵌入式編輯器
- 30. 建立遊戲編輯器,需要加載和保存幫助
您忘記了描述問題或提出問題的部分。只有代碼 – David
,毫無疑問,這不是一個好的開始。請看看[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask) –
使用[WriteAllBytes](https://msdn.microsoft.com/en- us/library/system.io.file.writeallbytes(v = vs.110).aspx)而不是WriteAllText。 [這個問題](http://stackoverflow.com/questions/472906/how-do-i-get-a-consistent-byte-representation-of-strings-in-c-sharp-without-manu)顯示如何將你的字符串轉換爲一個字節數組。 – stuartd