我無法相信,最簡單的任務是行不通的!Search * in * .CSV-
我只想通過使用StreamReader-Class在csv文件中循環並在關聯行中查找關鍵字。 例如: -
- 鍵1;值1
- 鍵2;值2
- KEY3;價值3
如果密鑰存在,沒有任何問題。否則應該達到EOF,但它不起作用!
如果我放棄緩衝的數據,EOF將每次到達。結果沒有找到鑰匙。
編輯:與所有的建議,但相同的結果!
StreamReader reader = null;
if(!string.IsNullOrEmpty(textBox1.Text))
{
try
{
reader = new StreamReader(@"ident.csv", Encoding.ASCII);
string buffer;
string[] str = null;
while((buffer = reader.ReadLine()) != null)
{
if(buffer.Contains(";"))
{
str = buffer.Split(';');
if(str[0].Equals(textBox1.Text))
break;
}
}
if(reader == null)
{
MessageBox.Show("Ident not found!");
textBox2.Text = "";
}
else
{
textBox2.Text = str[1];
Clipboard.SetText(str[1]);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
reader.Dispose();
reader.Close();
}
}
else
{
MessageBox.Show("Set ident!");
}
}
_How_它不起作用?我期待'buffer.Contains()'有一個空引用異常,但爲什麼我們必須猜測? – 2010-09-17 09:42:32
你有沒有試過在str = buffer.Split上放置一個斷點(';');看看你真的從文件中得到什麼?如果拆分失敗,它可能是您的CSV文件中的文件編碼,因爲SmartJJ建議 – FixerMark 2010-09-17 12:38:04
關於編輯:您想要測試'if(buffer == null)'(不是讀取器)。你還不清楚什麼是(沒有)發生。如果英語有問題,至少應該發佈程序的輸出。 – 2010-09-17 17:01:15