我正在尝试从文本文件中解析销售信息,并将其放入两个列表框
文本文件包含以下信息:
Sam West $10,000.00
Mae West $125,900.00
North West $2,000.00
Michelle Smith $25,000.00
John Smith $12,500.00
Martin Smith $19,900.00
David Sampson $32,500.00
Joan Sampson $5,990.00
Sam Sampson $10,000.00
Mae Sampson $125,500.00
North Sampson $2,000.00
Michelle West $25,000.00
John Johnson $12,500.00
Martin Johnson $19,900.00
David Johnson $32,500.00
Joan Johnson $5,990.00
Sam Hartmann $10,000.00
Mae Hartmann $125,100.00
North Hartmann $2,000.00
Michelle Hartmann $25,000.00
John Johnson $12,500.00
Martin Hartmann $19,900.00
David Hartmann $32,500.00
Joan Hartmann $5,990.00
我的代码在这里
private void btnReadInSalesData_Click(object sender, EventArgs e)
{
StreamReader reader = new StreamReader("SalesNumbers.txt");
List<int> numbers = new List<int>();
int intTotal = 0;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] tokens = line.Split(new char[] { '$' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in tokens)
{
if (int.TryParse(s, out intTotal))
numbers.Add(intTotal);
lstTotalSales.Items.Add(s);
}
}
这是输出的图片http://s24.postimg.org/ylm8vl9at/output.jpg
我只是想读取文本文件,然后将总销售额添加到lstTotalSales列表框中,并将“全名”添加到lstNames列表框中。
谢谢
您错过了将每一行拆分为名称和值。
尝试这个:
string[] lines = File.ReadAllLines("SalesNumbers.txt");
foreach (string line in lines) {
string[] s = line.Split("$".ToCharArray());
if (s.Length<2) { /* */ }
double d;
if (!double.TryParse(s[1], NumberStyles.Float, CultureInfo.CurrentCulture, out d)) {
// Handle if not a number
}
lstNames.Items.Add(s[0]);
lstTotalSales.Items.Add(d);
}
编辑
当我们将值转换为双精度时,在显示值时必须添加货币符号:
string text = "$" + value.ToString();
请注意,我们暗示总是与$
符号分开。
假设有多个货币符号,则必须跟踪拆分符号:
string currencySymbols = "$€Y";
//...
int index = line.IndexOfAny(currencySymbols.ToCharArray());
if (index<0) {} //Nothing found
char usedSymbol = line[index]; // <- found symbol
string name = line.Substring(0, index);
string value = line.Substring(index+1);
//...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句