查看: 1702  |  回复: 1
LCEDA输出的UNICODE编码BOM和坐标 转为GB2312工具
wangjiati
6
主题
40
回复
发表于2018-03-05 23:13:56 | 只看该作者
1# 电梯直达

 这里的小工具约等于下面的操作,  真心希望下面这段中提到的 两家 能直接支持,  转换真心只要几句话即可.

 


使用方法:



附件为编译好的EXE:    转为GB2312编码.zip 





c# 源码: 

using System;
using System.Linq;
using System.Text;
using System.IO;

namespace transferEncoding
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Count() == 1 && File.Exists(args[0]) && (Path.GetExtension(args[0]).ToUpper() == ".TXT" || Path.GetExtension(args[0]).ToUpper() == ".CSV"))
            {
                try
                {
                    string temp = Path.GetDirectoryName(args[0]) + @"\"  + Path.GetFileNameWithoutExtension(args[0]) + "_(gb2312)" + Path.GetExtension(args[0]);

                    //ReadAllText方法尝试根据现存的字节顺序标记来自动检测文件的编码。 可检测到编码格式 UTF-8 和 UTF-32(包括 big-endian 和 little-endian)。                    
                    string unicodeString = File.ReadAllText(args[0]);

                    /*-------------------------------------------------------------------------------------*/
                    //检查是否可能是LCEDA输出的BOM或坐标,  如果第一行是指定字符串常量,则替换制表符为 逗号
                    StringReader sr = new StringReader(unicodeString);
                    string first_row = sr.ReadLine();    //读取第一行

                    if(  first_row.Contains("id\tvalue\tquantity\tpackage\tcomponents\tManufacturer Part\tSupplier\tManufacturer\tLCSC") == true ||
                         first_row.Contains("Designator\t Footprint\tMid X\tMid Y\tRef X\t Ref Y\t Pad X\tPad Y\tTB\tRotation\tComment") == true
                        )
                    {
                        unicodeString =  unicodeString.Replace("\t", ",");
                    }
                    /*-------------------------------------------------------------------------------------*/
                    byte[] byteArray = Encoding.Default.GetBytes(unicodeString);
                    byte[] gb2312Bytes = Encoding.Convert(Encoding.Default, Encoding.GetEncoding("gb2312"), byteArray);

                    File.WriteAllBytes(temp, gb2312Bytes);
                    Console.WriteLine("转换完成");

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine("按任意键退出...");
                    Console.ReadKey();
                }
            }
            else
            {
                Console.WriteLine("这是一个命令行程序, 可以直接拖动需要转的文件到程序图标上, 系统会自动启动程序并完成转码");
                Console.WriteLine("支持UTF-8 和 UTF-32(包括 big-endian 和 little-endian)");
                Console.WriteLine("第一个参数为输入文件绝对路径");
                Console.WriteLine("当前仅支持CSV和TXT格式");
                Console.WriteLine("按任意键退出...");
                Console.ReadKey();
            }
            return;
        }
    }
}



打酱油路过.
立创EDA罗工
78
主题
4620
回复
发表于2018-03-06 08:46:07   |  只看该作者
2#

已经通知他们了,只是还在排期,没有时间开发。。。

感谢楼主开发的小工具,很实用。

技术支持微信:请前往lceda.cn获取二维码,官方群:不再提供QQ群,公众号:立创EDA 或 开源硬件平台

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部