System.IOを初めて使用しています。プログラムにファイルをロードできないというメッセージをユーザに表示します。C#
私は、WebからJsonファイルを取得し、Windowsアプリケーションフォームのコントロールに表示する部分データのみを取得するアプリケーションを持っています。 このフォームを使用すると、データが新しいファイルとして保存され、ファイルが保存されたときに追加した「インジケータ」がプログラムに保存されている場合にのみファイルを読み込むことができます。
すべて動作します。
このインジケータを含まないファイルがプログラムにロードされると、何も表示されませんが、Messagebox.Show()をポップアップしてユーザーはなぜ値が空で、何も起こらなかった理由を知っています。
if(openFile.ShowDialog() == DialogResult.OK)
{
string dataLine = string.Empty;
using (StreamReader read = new StreamReader(File.OpenRead(openFile.FileName)))
{
dataLine = read.ReadToEnd();
string[] beginningOfData = dataLine.Split(',');
string temporary = string.Empty;
foreach (string line in beginningOfData)
{
//Indicator
if(line.Contains("Indicator")
{
temporary = line.substring(9);
//Goes through the rest of the file
//Converts data to control value and adds it
}
else
{
//Where I tried to display the message box
}
}
}
}
これ、私はそれがあまりにも
else
{
MessageBox.Show("Can't load data.");
}
たかったとしてそれはまだそれが指標があったことを読み出して表示しても、メッセージボックスを表示するだろうか、私が試してみたが、それは働いていませんでした対応するコントロール内のデータ。また、私がMessageBoxを閉じようとするたびに、それは再び表示されます。
は、だから私は、代わりにこのことを決めた:
else if(!line.contains("Indicator"))
{
MessageBox.Show("Can't load data.");
break;
}
、あまりにも、このように:
else
{
if(!line.contains("Indicator"))
{
MessageBox.Show("Can't load data.");
break;
}
}
私も
if(line.contains("Indicator") == false)
{
//Code here
}
しかし、それは希望をすることによって、それは、より具体的な作ってみましたファイルがプログラムによって作成されていても表示されます。
休憩。メッセージボックスが再び表示されなくなるのを止めましたが、メッセージボックスが不適切なテキストファイル(インジケータが含まれていない場合)を表示し、MessageBoxを閉じて再度試してみるだけです。
ファイルには、 'Indicator'という値を持つ行が含まれていますか、ファイルからのすべての行に単一の' Indicator'値が必要ですか? – Deadzone
最初のもの。 私はそれはのように表示されます作成されたテキストファイルを開くとき: インジケータ、データ (単なる例):1、データ2: ライン1:「someText」 のLine2言葉は、 – BeginnerCoder
はこれが有効なファイルを考えられています: "インジケータ" ... – Deadzone