将字符串转换为具有混合文本和数字的双重文件?

时间:2014-05-24 14:14:16

标签: c#

练习要求您打印薪水大于1800.00的员工姓名

练习要求您打印薪水大于1800.00的员工姓名。

使用记事本+ +

打开日期

第54-107栏是客户的名称。 第156-163栏是雇员工资(那些有000工资的人会破坏它)。

我无法转换工资份额,有人可以帮助我吗?

代码程序

double salconv =0;;
string linha, salario="";
string[] maior = new string[100]; 

StreamReader sr = new StreamReader(@"C:\Users\BRENOLL\Videos\data.txt");
while (!sr.EndOfStream)
{
    linha = sr.ReadLine();
    string nomes = linha.Substring(53, 52);
    salario = sr.ReadLine();
    salconv = Double.Parse(salario.Substring(156, 6));

    Console.WriteLine(salconv);
}

sr.Close();

Console.ReadKey();`

Image

file dat

1 个答案:

答案 0 :(得分:0)

我使用您的代码运行您的示例数据。它在最后一行打破了。您正在尝试解析一个充满空格" "的字符串。

一种解决方法是使用TryParse方法。但是如果你的数据不正确,他们将被忽略。

double salconv = 0; ;
string linha, salario = "";
string[] maior = new string[100];

StreamReader sr = new StreamReader(@"C:\Users\pw\Downloads\data.txt");
while (!sr.EndOfStream)
{
    linha = sr.ReadLine();
    string nomes = linha.Substring(53, 52);
    salario = sr.ReadLine();

    if (Double.TryParse(salario.Substring(156, 6), out salconv))
    {
        Console.WriteLine(salconv);
    }
}

sr.Close();

Console.ReadKey();

Alos,请考虑使用StreamReader声明包裹using