C# 调用6S.exe
代码来自此文章https://blog.csdn.net/summer_dew/article/details/91988258
我做了一点点修改,增加了输出结果到文档的功能,正则表达式实在是写不来,笨方法用字符串的方法截取的,输出大气校正的结果
输入文件为in.txt, 输出文件为out.txt
运行 调用6S模型.exe 即可
代码:
static void Main(string[] args)
{
string SixSexe_dir = System.AppDomain.CurrentDomain.BaseDirectory; //项目文件夹
Console.WriteLine(SixSexe_dir);
string SixSexe_path = SixSexe_dir + "\6S.exe"; //6s.exe放在了bin/debug/6SModel目录下
string intxt_path = SixSexe_dir + "\in.txt"; //参数文件
try
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.FileName = SixSexe_path; //exe的路径
myProcess.StartInfo.RedirectStandardInput = true; //接受来自调用程度的输入
myProcess.StartInfo.RedirectStandardOutput = true; //由调用程度获取输出信息
myProcess.StartInfo.UseShellExecute = false; //是否使用操作系统的Shell启动
myProcess.StartInfo.CreateNoWindow = true; //不显示调用程序的窗口
myProcess.Start(); //开启进程
// 向进程中输出参数
StreamWriter myStreamWriter = myProcess.StandardInput;
String inputText;
int numLines = 0;
FileStream fs = new FileStream(intxt_path, FileMode.Open);//参数文件,按行排列。
StreamReader sr = new StreamReader(fs);
inputText = sr.ReadLine();
while (inputText != null)
{
myStreamWriter.WriteLine(inputText);//程序的核心,向目标程序中写入数据。
inputText = sr.ReadLine();
numLines++;//行数统计
}
fs.Close();
myStreamWriter.Close();
// 获得输出内容
string out_str = myProcess.StandardOutput.ReadToEnd();
// Console.WriteLine(out_str);
FileStream outToFile = new FileStream(SixSexe_dir + "\out.txt", FileMode.OpenOrCreate);
StreamWriter streamWriter = new StreamWriter(outToFile);
streamWriter.Write(out_str);
streamWriter.Close();
// 提取目标结果
string[] lines = out_str.Split('
');
string xa_xb_xc = lines[163];
for (int i = 155; i <= 167; i++)
{
Console.WriteLine(lines[i]);
}
string extra1 = xa_xb_xc.Substring(49, 7);
string extra2 = xa_xb_xc.Substring(58, 7);
string extra3 = xa_xb_xc.Substring(67, 7);
Console.WriteLine(extra1);
Console.WriteLine(extra2);
Console.WriteLine(extra3);
myProcess.Close();
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}附件:
Debug.zip
顺便把6S手册也挂出来吧,官网不好下,文件分成了三部分包括原理,代码介绍等,全英文看懂不容易。


鲁公网安备 37148202000241号