![]() |
#2
wp2319572013-08-13 16:02
|

public Double[] func(String path, Double item)
{
Double[] result = new Double[2];
String[][] arrStrLine;
arrStrLine = new String[72][];
FileStream fs = new FileStream(path, FileMode.Open);
if (fs == null)
{
Console.WriteLine("文件读取错误");
return null;
}
StreamReader streamReader = new StreamReader(fs);
streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
String str;
int j = 0;
while ((str = streamReader.ReadLine()) != null)
{
arrStrLine[j++] = str.Split(',');
}
for (int i = 0; i < arrStrLine.Length; i++)
{
if (Convert.ToDouble(Convert.ToString(arrStrLine[i][0])) == item)//arrStrLine[i][0]
{
result[0] = Convert.ToDouble(arrStrLine[i][1]);
result[1] = Convert.ToDouble(arrStrLine[i][2]);
return result;
}
if(Convert.ToDouble(Convert.ToString(arrStrLine[i][0]))<item&&Convert.ToDouble(Convert.ToString(arrStrLine[i+1][0]))>item)
{
result[0] = (Convert.ToDouble(arrStrLine[i][1]) + Convert.ToDouble(arrStrLine[i + 1][1])) / 2;
result[1] = (Convert.ToDouble(arrStrLine[i][2]) + Convert.ToDouble(arrStrLine[i + 1][2])) / 2;
return result;
}
}
return null;
}
函数的功能是读取path下的文件,path文件时一个72行三列的以,隔开的数据,传入第一个值(item),进行判断,返回构面的两个值。但是我用的c#,而对方的程序是vc6.0开发的,创建dll给他也不方便弄,所以求大神帮忙转换成c++代码 {
Double[] result = new Double[2];
String[][] arrStrLine;
arrStrLine = new String[72][];
FileStream fs = new FileStream(path, FileMode.Open);
if (fs == null)
{
Console.WriteLine("文件读取错误");
return null;
}
StreamReader streamReader = new StreamReader(fs);
streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
String str;
int j = 0;
while ((str = streamReader.ReadLine()) != null)
{
arrStrLine[j++] = str.Split(',');
}
for (int i = 0; i < arrStrLine.Length; i++)
{
if (Convert.ToDouble(Convert.ToString(arrStrLine[i][0])) == item)//arrStrLine[i][0]
{
result[0] = Convert.ToDouble(arrStrLine[i][1]);
result[1] = Convert.ToDouble(arrStrLine[i][2]);
return result;
}
if(Convert.ToDouble(Convert.ToString(arrStrLine[i][0]))<item&&Convert.ToDouble(Convert.ToString(arrStrLine[i+1][0]))>item)
{
result[0] = (Convert.ToDouble(arrStrLine[i][1]) + Convert.ToDouble(arrStrLine[i + 1][1])) / 2;
result[1] = (Convert.ToDouble(arrStrLine[i][2]) + Convert.ToDouble(arrStrLine[i + 1][2])) / 2;
return result;
}
}
return null;
}