2017-12-02 93 views
-2

我正在創建一個控制檯應用程序,它將名稱作爲輸入並將其存儲在文本文件中,然後我想檢索以A開頭的名稱。從文本文件中檢索以特定字母開頭並在文本框中顯示的文本

控制檯應用程序有兩個文本框和兩個按鈕。通過點擊按鈕1,文本框1中輸入的文本將被複制到文本文件中,並且通過單擊按鈕2,U想要檢索以A開頭的名稱並將其顯示在文本框2中。

private void button1_Click(object sender, EventArgs e) 
{ 
    TextWriter txt = new StreamWriter("d:\\demo.txt"); 
    txt.Write(textBox1.Text); 
    txt.Close(); 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    textBox2.Text = File.ReadAllText("d:\\demo.txt");  
} 

我知道如何使用

textBox2.Text = File.ReadAllText("d:\\demo.txt"); 

請幫我找回名字以A開頭

+0

如何在文本文件中寫入名稱? –

+0

TextWriter txt = new StreamWriter(「d:\\ demo.txt」); txt.Write(textBox1.Text); –

+0

'txt.Write'好像是一個非常糟糕的選擇。你最好使用'WriteLine',否則當你閱讀文件時,你不知道每個名字的開頭或結尾。 – InBetween

回答

0

變化WriteWriteLine,然後你來檢索文本文件的全部數據可以將每個名稱作爲單獨的行讀取。當你這樣做時,檢查第一個字母StartsWith。如果有a開始,使用+=其追加到textbox2

private void button1_Click(object sender, EventArgs e) 
{ 
    TextWriter txt = new StreamWriter("d:\\demo.txt"); 
    txt.WriteLine(textBox1.Text); 
    txt.Close(); 
} 
private void button2_Click(object sender, EventArgs e) 
{ 
    string line; 
    System.IO.StreamReader file = new System.IO.StreamReader(@"d:\\demo.txt"); 

    while((line = file.ReadLine()) != null) 
    { 
     if (line.ToLower().StartsWith("a")) 
     { 
      textBox2.Text += " " + line; 
     } 
    } 
} 
0

您沒有提供必要的細節,但你在找類似的東西; (將文本作爲行寫入文件並閱讀它)

private void button1_Click(object sender, EventArgs e) 
    { 
     TextWriter txt = new StreamWriter(@"d:\\demo.txt", append: true); 
     txt.WriteLine(textBox1.Text); 
     txt.Close(); 
    } 
    private void button2_Click(object sender, EventArgs e) 
    { 
     var lines = File.ReadAllLines(@"d:\\demo.txt").Where(x => x.StartsWith("A")); 
     textBox2.Text = string.Join(",", lines); 
    } 
相關問題