一种用于NC大文件的加载编辑方法与流程

文档序号:34816840发布日期:2023-07-19 19:49阅读:52来源:国知局
本发明涉及数控编程,尤其涉及一种用于nc大文件的加载编辑方法。
背景技术
::1、nc是数控程序文件的后缀名称,是计算机辅助设计制造时所用的编程文件,一般可以使用记事本、word这类软件打开。2、在cnc数控加工系统中,加载,显示,编辑nc文件是系统必须具备的功能。传统的文本显示控件,对于体积较小的nc文件,能够进行流畅的显示和修改,翻页等功能,能较好的满足需求。但是对于文件体积大小达到几十兆甚至上百兆的nc文件,即使用windows系统自带的记事本软件打开,也需要耗费很长时间。3、如果在数控系统中使用传统的方式打开这种大体积文件,则存在以下问题:4、1.加载速度很慢,打开文件需要较长的等待时间,等待期间界面不能响应用户输入,可能会导致软件崩溃;5、2.当文件内容达到几百万行的时候,无法快速定位到某一行,只能通过滚动条去定位,效率低;6、3.全局替换或者查找某些内容的时候,数据量很大,替换或者查找时间很长,查找或者等待期间界面不能响应用户输入,可能会导致系统崩溃。7、因此,急需一种新的技术方案解决上述技术问题。技术实现思路1、本发明的目的在于克服上述现有技术的问题,提供了一种用于nc大文件的加载编辑方法,用以解决传统技术中文本加载速度慢、显示效率低以及易造成系统崩溃的技术问题。2、上述目的是通过以下技术方案来实现:3、一种用于nc大文件的加载编辑方法,包括如下步骤:4、步骤(1)将nc文件内容读取到内存中,得nc缓存文本;5、步骤(2)根据所述nc缓存文本中的换行符数量,获取所述nc缓存文本的总行数;6、步骤(3)设置单页显示的行数,获取所述nc缓存文本的总页数;根据所述行数对应的换行符的位置,得到此页显示的内容对应于所述nc缓存文本中的首尾字符,截取所述行数对应的内容并进行显示。7、进一步地,还包括鼠标翻页控制:根据鼠标滚动距离,获取下翻或者上翻的页数,待鼠标停止后,计算该停止页显示的内容对应于所述nc缓存文本中的首尾字符,截取所述行数对应的内容并进行显示。8、进一步地,还包括字符串定位,所述字符串定位包括:9、判断查找的字符串长度是否为1,若是,则建立哈希数组,获取该位置字符在所述哈希数组中的值,并判断该值是否为0,包括:10、若该值为0,则此字符与查找字符串的最后一个字符匹配;从此位置开始,往前逐个判断字符是否与被查找字符串匹配;11、若完全匹配,则返回被查找字符串位置并结束,定位成功;12、若不完全匹配,则确认不匹配的字符的哈希值是否为n,其中n代表被查找字符串长度若为n,则从不匹配字符位置往后跳转n,并进行下一轮判断;13、若不为n,则从当前位置往后跳转1,并进行下一轮判断;14、若该值不为0,则说明此字符和被与查找字符串的尾字符不匹配,则从当前文本的位置跳转到当前位置+当前位置的哈希值,并判断跳转位置是否超过内存文本长度;15、若未超过,则并进行下一轮判断;16、若超过,则文本不存在未查找字符,则结束。17、进一步地,所述建立哈希数组,具体为:18、建立哈希表ucharhashtable[256],将哈希数组用被查找字符串的总长度n填充,从头开始遍历字符串的每个字符,hashtable[该字符]=该字符距离字符串尾部的距离(0-n-1)。19、进一步地,还包括页面跳转,所述页面跳转包括:20、步骤(5-1)获取跳转页的页号;21、步骤(5-2)通过页号*单页行数获取跳转页的起始行号m;22、步骤(5-3)获取第m个换行符在所述nc缓存文本中的索引x;23、步骤(5-4)将索引x+1的字符作为跳转页的起始字符;24、步骤(5-5)从起始字符开始,计算出第m个换行符的索引,作为跳转页的终止字符索引;25、步骤(5-6)通过起始字符索引和终止字符索引,从所述nc缓存文本中截取这一页的显示数据,并将该数据显示在控件中。26、进一步地,还包括翻页,所述翻页用于上一页和下一页翻页操作,包括:27、上一页操作:28、获取当前页显示文本的开始字符索引;29、将结束字符的上一个字符作为上一页的结束字符;30、从结束字符往前计算出第n个换行符得到索引,作为下一页的起始字符索引;31、截取开始字符和结束字符之间的所有字符,并显示在当前页;32、下一页操作:33、获取当前页显示文本的开始字符索引;34、将结束字符的下一个字符作为下一页的结束字符;35、从开始字符往前计算出第n个换行符得到索引,作为下一页的起始字符索引;36、截取开始字符和结束字符之间的所有字符,并显示在当前页。37、进一步地,还包括查找,所述查找包括往前查找和往后查找,具体为:38、所述往前查找包括:在本页中查找并定位;从本页开始字符往前查找文本在所述nc缓存文本中的索引;通过该索引获取所述nc缓存文本中0到字符索引之间的换行符数量,得到字符所在的页号和行号;跳转到查找到的文本所在页,并定位所在行;39、所述往后查找包括:在本页中查找并定位;从本页开始字符往后查找文本在所述nc缓存文本中的索引;通过该索引获取所述nc缓存文本中0到字符索引之间的换行符数量,得到字符所在的页号和行号;跳转到查找到的文本所在页,并定位所在行。40、进一步地,还包括替换,包括先对所述nc缓存文本进行文本替换,并刷新当前页的显示。41、有益效果42、本发明所提供的一种用于nc大文件的加载编辑方法,通过重写nc显示控件,修改显示机制能有效提高文本加载和显示的效率,相对于传统技术具有至少如下三方面优点:43、一、快速加载大文件:44、由于传统加载nc文件的做法是:直接通过平台控件,加载文件全部内容,将所有内容一次全部显示,当文件内容过大,加载的时间会非常的长;本方案只是把文件内容加载到缓存中,单次只显示一页数据,所以可以立刻加载文件内容,实现快速显示;45、二、大文件快速替换文本46、传统方案替换文本的时候,面临和文本加载相同的问题,替换时间会非常长。本方案只需要将内存中的文本进行替换,再显示当前页即可,可实现大文本快速替换。47、三、大文件快速定位:48、传统方案文件内容定位是通过拖动滚动条实现的,用户拖动滚动条定位到某一页。当文本过大,行数达到百万行的时候,来回定位行号是十分耗时的事情,本方案能够通过行号,或者页号,快速定位到大文件的任意一行。技术特征:1.一种用于nc大文件的加载编辑方法,其特征在于:2.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括鼠标翻页控制:3.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括字符串定位,所述字符串定位包括:4.根据权利要求3所述的一种用于nc大文件的加载编辑方法,其特征在于,所述建立哈希数组,具体为:5.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括页面跳转,所述页面跳转包括:6.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括翻页,所述翻页用于上一页和下一页翻页操作,包括:7.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括查找,所述查找包括往前查找和往后查找,具体为:8.根据权利要求1所述的一种用于nc大文件的加载编辑方法,其特征在于,还包括替换,包括先对所述nc缓存文本进行文本替换,并刷新当前页的显示。技术总结本发明涉及数控编程
技术领域
:,具体是一种用于NC大文件的加载编辑方法,包括:(1)将NC文件内容读取到内存中,得NC缓存文本;(2)根据所述NC缓存文本中的换行符数量,获取所述NC缓存文本的总行数;(3)设置单页显示的行数,获取所述NC缓存文本的总页数;根据所述行数对应的换行符的位置,得到此页显示的内容对应于所述NC缓存文本中的首尾字符,截取所述行数对应的内容并进行显示。本方案通过重写NC显示控件,修改显示机制能有效提高文本加载和显示的效率。技术研发人员:安路路,蒋培茹,吴然受保护的技术使用者:无锡信捷电气股份有限公司技术研发日:技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1