2017-11-01 8 views
0

ファイル内の文字列がすべての場合は機能します。ファイルに文字列が含まれていない場合は、メッセージが必要です。 MessageBoxが表示されないか、無限ループで表示されます。私は偽/真実を試みたが、うまくいかなかった。解析CSV =ファイルに文字列が含まれていません。

TextFieldParser sprawdz = new TextFieldParser("C:\\wykaz_druk.csv"); 
string currentLine; 
string searchcsv = textBox_SPR_SEARCH.Text; 
sprawdz.TextFieldType = FieldType.Delimited; 
sprawdz.Delimiters = new string[] { ";" }; 
sprawdz.TrimWhiteSpace = true; 

bool check = false; 
do 
{ 
    currentLine = sprawdz.ReadLine(); 
    if (currentLine != null) 
    { 
     check = true; 
     string file = currentLine; 
     string serial = file.Split(';')[2].Trim(); 
     string adresip = file.Split(';')[3].Trim(); 
     if (adresip == searchcsv || serial == searchcsv) 
     { 
      textBox2.Text = serial; 
      textBox4.Text = adresip; 
     } 
    } 
} while (currentLine != null); 
if (check == false) 
{ 
    MessageBox.Show("Error"); 
} 

/他の場合、私も試したが、それはまだ動作しません:

check = true; 

を間違った場所に:

TextFieldParser sprawdz = new TextFieldParser("C:\\wykaz_druk.csv"); 
string currentLine; 
string searchcsv = textBox_SPR_SEARCH.Text; 
sprawdz.TextFieldType = FieldType.Delimited; 
sprawdz.Delimiters = new string[] { ";" }; 
sprawdz.TrimWhiteSpace = true; 

while (!sprawdz.EndOfData) 
{ 
    currentLine = sprawdz.ReadLine(); 
    if (currentLine != null) 
    { 
     string file = currentLine; 
     string serial = file.Split(';')[2].Trim(); 
     string adresip = file.Split(';')[3].Trim(); 
     if (adresip == searchcsv || serial == searchcsv) 
     { 
      textBox2.Text = serial; 
      textBox4.Text = adresip; 
     } 
    } 
    else 
    { 
     MessageBox.Show("Error"); 
     break; 
    } 
} 
+0

はこれを見ています:https://stackoverflow.com/questions/910873/how-can-i-determine-if-a-file-is- binary-or-c-text-in-c – Marco

+1

ファイルが文字列ではないと言うと、バイナリファイルのようですか?もしそうなら、ストリームを使うべきです – Sparrow

+0

@Sparrow No. "string searchcsv = textBox_SPR_SEARCH.Text"がCSVファイルであれば動作します。問題がある私が探しているものがファイルにない場合。 – Hoshie

答えて

1

私はあなたが割り当てている疑いがあります。代わりに、ここでチェック

移動:

if (adresip == searchcsv || serial == searchcsv) 
{ 
    check = true; // <-- insert here 
    textBox2.Text = serial; 
    textBox4.Text = adresip; 
} 
関連する問題