初入坑時,看到網上有類似的教程視頻實現單詞本,於是自己敲了一個實現單詞本功能的小項目,在實現期間,發現可以有兩種版本來實現單詞本功能,此處選擇A版來爲大家分享經驗,同時留作自己日後複習鞏固,有疏漏錯誤的地方,還望大神熱心指出,在下感激不盡.
A版實現以下功能:
- 利用文件流讀取文本文件
- 利用openfiledialog實現查找文件的功能
- 存取文本文件路徑和顯示文本文件內容的功能
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();//每點擊一次選擇文件按鈕自動清空文本框內已經打開的文件內容
textBox2.Clear();//清空文件路徑的內容
OpenFileDialog filename = new OpenFileDialog();//定義打開文件
filename.InitialDirectory = Application.StartupPath;//初始路徑
filename.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";//設置打開文件的類型
filename.FilterIndex = 2;//設置文件類型的顯示順序
if (filename.ShowDialog() == DialogResult.OK)
{
textBox2.Text = filename.FileName.ToString();//將路徑顯示在文本框
StreamReader sr = new StreamReader(filename.FileName, Encoding.Default);
//將文件通過stream流讀取
string content = sr.ReadToEnd();//把文件讀完存給content
string[] lines = content.Split('\n');//將文件內容分割成一行一行存給數組
for (int i = 0; i < lines.Length; i++)
{
textBox1.Text += lines[i++]+"\n";
//List<string> english = new List<string>();
//List<string> chinese = new List<string>();
//string[] words = lines[i].Trim().Split('\t');
//if (words.Length < 2)
//continue;
//english.Add(words[0]);
//chinese.Add(words[1]);
}
sr.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();//此處點擊返回按鈕同樣自動清空文本框文件內容
textBox2.Clear();//清除文件路徑內容
}
}
}
以上爲我編寫的文件的代碼,被註釋掉的代碼部分用以實現分割音標出來再顯示的功能,還未完善好,所以註釋掉了,有感興趣的可以完善完善共同探討。
這是我的窗口
我的文本文件內容是這樣
這是實現的效果
項目任存在可改進的空間,有興趣的夥伴可以改進改進,將你的作品放在評論區共同討論