私は3つのカウンターを実行しています。1つは文字の合計量を返し、もう1つは'|'の数を返します。.txtファイルの文字(合計)。そして、私のテキストファイルにいくつの別々の行があるかを読むための1つ。カウンターが間違っていると思いますが、よくわかりません。私のテキストファイルには余分な'|'があります charsですが、それは後で修正する必要があるバグです...
The Message Boxes show
"Lines = 8"
"Entries = 8"
"Total Chars = 0"
それが役立つかどうかはわかりませんが、.txtファイルはストリームライターを使用してコンパイルされており、出力を作成するためにdatagridviewを文字列に保存しています。これらの機能はすべて問題ないようです。
これが私が読んでいるテキストファイルのコピーです
Matthew|Walker|MXW320|114282353|True|True|True
Audrey|Walker|AXW420|114282354|True|True|True
John|Doe|JXD020|111222333|True|True|False
||||||
そしてここにコードがあります。
private void btnLoadList_Click(object sender, EventArgs e)
{
var loadDialog = new OpenFileDialog
{
InitialDirectory = Convert.ToString(Environment.SpecialFolder.MyDocuments),
Filter = "Text (*.txt)|*.txt",
FilterIndex = 1
};
if (loadDialog.ShowDialog() != DialogResult.OK) return;
using (new StreamReader(loadDialog.FileName))
{
var lines = File.ReadAllLines(loadDialog.FileName);//Array of all the lines in the text file
foreach (var assocStringer in lines)//For each assocStringer in lines (Runs 1 cycle for each line in the text file loaded)
{
var entries = assocStringer.Split('|'); // split the line into pieces (e.g. an array of "Matthew", "Walker", etc.)
var obj = (Associate) _bindingSource.AddNew();
if (obj == null) continue;
obj.FirstName = entries[0];
obj.LastName = entries[1];
obj.AssocId = entries[2];
obj.AssocRfid = entries[3];
obj.CanDoDiverts = entries[4];
obj.CanDoMhe = entries[5];
obj.CanDoLoading = entries[6];
}
}
}
ここでバグを見つけてください。フォーマットがずさんな場合は申し訳ありませんが、私は独学で、クラスはありません。追加のアドバイスは歓迎されます。必要に応じて正直で厳しくしてください。感情を傷つけることはありません。
要約すれば
このプログラムが、使用しているテキストファイルから正しい値を読み取らないのはなぜですか?