PCB 无需解压,直接读取Genesis TGZ指定文件 实现方法

通过无需解压读取ZIP压缩包的方法,寻思者如何可以不解压直接读Genesis TGZ文件内容,

通过查找资料,原来可以通过:SharpCompress.dll工具实现此需求,此工具如此NB

 

一.SharpCompress  读取TGZ小结:

     1.读取TGZ内容,无法直接直接指定路径读取文件,只能通过MoveToNextEntry一个一个往下遍历查找文件

     2.MoveToNextEntry 遍历文件,采用的是深度递归

     3.区分文件名与文方件夹,无法通过Entry.IsDirectory 区分,识别方法:尾随 / 斜杆为文件夹,否则为文件

 

二.通过写实际例子来对此工具的用法进行说明这样来得更实际一些。哈哈

        例1:读取TGZ  STEP中有多少个step

        private string readTGZ_Dir()
        {
            string line = "";
            string tarFilePath = @"F:\2p00802ya0.tgz";
            string FileName = Path.GetFileNameWithoutExtension(tarFilePath);
            string FindDir = $@"{FileName}/steps/";  //以/斜杆结尾为文件夹
            using (Stream stream = File.OpenRead(tarFilePath))
            {
                IReader reader = ReaderFactory.Open(stream);
                while (reader.MoveToNextEntry())
                {
                    Match matchresult = Regex.Match(reader.Entry.Key, $@"^{FindDir}([\w\s]+)/$");
                    if (matchresult.Success)
                    {
                        line += matchresult.Groups[1].Value + "  ";
                    }
                }
            }
            return line;
        }

 

    例2:读取TGZ  指定standard字体内容

        private string readTGZ_File()
        {
            string line = "";
            string tarFilePath = @"F:\2p00802ya0.tgz";
            string FileName = Path.GetFileNameWithoutExtension(tarFilePath);
            string FindFile = $@"{FileName}/fonts/standard";
            using (Stream stream = File.OpenRead(tarFilePath))
            {
                IReader reader = ReaderFactory.Open(stream);
                while (reader.MoveToNextEntry())
                {
                    if (reader.Entry.Key == FindFile)
                    {
                        EntryStream st = reader.OpenEntryStream();
                        byte[] byData = new byte[reader.Entry.Size];
                        st.Read(byData, 0, byData.Length);
                        line = System.Text.Encoding.Default.GetString(byData);  //纯英文读取
                         //line = System.Text.Encoding.UTF8.GetString(byData);     //含中文读取
                        st.Close();
                        break;
                    }
                }
            }
            return line;
        }

 

转载于:https://www.cnblogs.com/pcbren/p/9368927.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Genesis2000 是个线路板方面的计算机辅助制造软件,它是由以色列的Orbotech与Valor的合资公司----Frontline公司开发的,而且它还在不断开发更多功能,它还允许你可以自己开发设计适合自己规范的功能。 由于Genesis2000的优势太多,被许多大小线路板厂和光绘公司广泛采用。本培训教程把人家设计出来的线路板,根据厂里的机器能力,用Genesis2000去处理后,为生产各工序提供某些工具(比如各种菲林、钻带、锣带等),方便生产用,起的是辅助制造作用。也就是说学的是CAM范围,而不属于CAD范围。 一般来说,线路板厂接到客户订单时,客户会以电脑文件的形式提供他自己的样品资料,我们就是修正客户提供的原始资料文件,使它方便自己厂里的机器生产出符合客户要求的线路板。 该教程包含如下内容: 1、PADS2009文件转换Gerber文件 2、protel99se及DXP文件转换Gerber文件 3、AutoCAD文件转换Gerber文件 GENESIS2000软板安装 4、Gerber文件导入与技巧 5、GENESIS2000各菜单的讲解 6、文件的初步处理 (层别命名、定属性、排序、各层的对位等) 7、钻孔的制作 (校正、属性定义、补偿、刀具合并,分孔图转孔等) 8、多层板内层正片的制作 9、多层板内层负片的制作 10、外层线路的制作第一课(补偿,定SMD属性,优化等) 11、外层线路的制作第二课(掏铜皮,Npth削铜,网络检查等) 12、铜皮转网格、网格转铜皮 13、防焊的制作(优化、检查) 14、文字的制作(smybol的替代制作、检查和加UL Logo) 15、set排版(手动排版,加板边和V-CUT、光学点、定位孔) 16、pnl自动排版(加板边和定位孔, 电镀面积计算) 17、金手指+喷锡板的处理方法、加引线的具体要求 18、锣带及开模图,外形图制作 19、文件导出,涨缩讲解 20、MI制作及工艺流程讲解, 21、开料软件的应用,层压图计算 22、阻抗的计算及阻搞条的设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值