Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C从.dat文件中获取数字#_C#_File - Fatal编程技术网

C# 使用C从.dat文件中获取数字#

C# 使用C从.dat文件中获取数字#,c#,file,C#,File,我想从.dat文件中读取坐标值。问题是我不能拆分字符 确定坐标 您的图像似乎是一个固定宽度的文件,因此,一旦您知道每列的偏移量,就可以使用字符串.Substring(偏移量,长度)第一版 在第一个版本中,我只使用.Replace(“.”,“,”)方法将点替换为逗号 public Double[] GridValues(int fromline) { Double[] values = new Double[7]; for (int i = 1; i < 7; i++)

我想从.dat文件中读取坐标值。问题是我不能拆分字符 确定坐标


您的图像似乎是一个固定宽度的文件,因此,一旦您知道每列的偏移量,就可以使用
字符串.Substring(偏移量,长度)
第一版

在第一个版本中,我只使用.Replace(“.”,“,”)方法将点替换为逗号

public Double[] GridValues(int fromline) 
{
    Double[] values = new Double[7];
    for (int i = 1; i < 7; i++)
    {
        string input = ReadLine(fromline).Substring(8 * i, 8).Replace(".", ",");
        values[i-1] = double.Parse(input);
    }

    return values;
}
public Double[]网格值(int fromline)
{
Double[]值=新的Double[7];
对于(int i=1;i<7;i++)
{
字符串输入=ReadLine(fromline).Substring(8*i,8).替换(“.”,“,”);
值[i-1]=double.Parse(输入);
}
返回值;
}
第二版

在第二个版本中,我将一个IFormatProvider传递给定义的Parse()方法。作为

小数分隔符

public Double[] GridValues(int fromline) 
{
    Double[] values = new Double[7];
    for (int i = 1; i < 7; i++)
    {
        string input = ReadLine(fromline).Substring(8 * i, 8);
        values[i-1] = double.Parse(input,CultureInfo.InvariantCulture);
    }

    return values;
}
public Double[]网格值(int fromline)
{
Double[]值=新的Double[7];
对于(int i=1;i<7;i++)
{
字符串输入=ReadLine(fromline).Substring(8*i,8);
值[i-1]=double.Parse(输入,CultureInfo.InvariantCulture);
}
返回值;
}

手工解析该文件应该不难。试试请告诉我如何解析像“0-.1234”或“.234”这样的数字。请尝试
Decimal value=Decimal.parse(string)
您得到了什么异常或结果?确保以十进制数字(x.xxx或-x.xxx)的格式传递字符串。我不知道有什么可以解析“0-.1234”,因为我不知道这是什么类型的数字。如果在“.234”上失败,您可能需要测试一个前导句点,并在尝试解析之前向其追加一个“0”。