You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForm如何将批量XY坐标转为指定格式航点命令并导出TXT

需求说明

开发Windows Form简易工具,粘贴多组XY坐标列表后点击按钮,可将坐标批量转换为指定格式的航点命令,每行一条,最终输出为TXT文本文件。

输入坐标格式示例

65737,163129
-21687,-27399
164089,50153
164649,63465
-28663,140057
-28951,110329
149833,-30231

期望输出航点命令格式示例

waypoint:WLM 1:1:78168:~:1560:1:true:0:gui.xaero_default:false:0:false
waypoint:WLM 2:2:919432:~:154200:11:true:0:gui.xaero_default:false:0:false
waypoint:WLM 3:3:791080:~:15624:0:true:0:gui.xaero_default:false:0:false
waypoint:WLM 4:4:79288:~:16968:6:true:0:gui.xaero_default:false:0:false
waypoint:WLM 5:5:79064:~:155702:9:true:0:gui.xaero_default:false:0:false
修正后实现代码

原有代码存在坐标拆分逻辑错误、循环冗余、重复写入覆盖文件的问题,以下是可直接运行的实现:

private void button2_Click(object sender, EventArgs e)
{
    List<string> allWaypoints = new List<string>();
    // 拆分输入的每一行坐标
    string[] inputLines = richTextBox1.Text.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
    // 读取自定义配置参数
    string name = nametextbox.Text;
    string initials = initialstextbox.Text;
    int startNum = (int)startingnumberb.Value;
    // 固定格式后缀
    const string fixedSuffix = ":true:0:gui.xaero_default:false:0:false";

    for (int i = 0; i < inputLines.Length; i++)
    {
        // 拆分单条坐标的X、Y值
        string[] xy = inputLines[i].Split(',', StringSplitOptions.RemoveEmptyEntries);
        if (xy.Length != 2) continue; // 自动跳过格式错误的行
        string x = xy[0].Trim();
        string y = xy[1].Trim();
        int currentIndex = startNum + i;
        // 按规则拼接航点命令
        string singleWaypoint = $"waypoint:{name} {currentIndex}:{initials}:{x}:~:{y}:{currentIndex}{fixedSuffix}";
        allWaypoints.Add(singleWaypoint);
    }

    // 一次性写入所有内容到文件,默认保存在程序运行目录
    string savePath = Path.Combine(Application.StartupPath, "Triwaypt.txt");
    File.WriteAllLines(savePath, allWaypoints);
    // 可选:将结果同步到输出预览窗口
    outputwindow.Text = string.Join(Environment.NewLine, allWaypoints);
}

关键优化点

  • 先按换行拆分输入内容得到每行坐标,再逐行拆分X、Y值,避免坐标混乱
  • 用列表存储所有生成的航点后一次性写入文件,避免循环内重复写入导致的内容覆盖
  • 用字符串插值拼接命令,逻辑清晰不易出错
  • 可自行添加SaveFileDialog控件实现用户自定义保存路径

内容的提问来源于stack exchange,提问作者Matthew Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:11