C# 使用C从.dat文件中获取数字#
我想从.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++)
您的图像似乎是一个固定宽度的文件,因此,一旦您知道每列的偏移量,就可以使用
字符串.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”。