位置: 编程技术 - 正文

批处理数值排序问题(批处理计数)

编辑:rootadmin
a.txt中有行随机产生的数列,如下: 要求通过纯批处理按照数列的大小顺序,正序输出如下:   每行的数值都远远超过了cmd所能计算的最大数值。 要求,正确输出,不生成临时文件,代码高效通用。完成题目,视思路加分。 batman: 先说明下思路:   此题确实是出给我们的一大难题,为什么这要说呢?楼主要求的是文本内所有超大数值的排序, 所有的数值都远远超过了cmd所能运算的最大数值,用常规的比较法都是行不通的这是难点之一; 第二这些数值是随机生成的且字符总数不定,甚至可能达到数行和数十行之长,如采用逐字符判断 的方法来确实行最大字符数,效率将会是此类方案所无法逾越的障碍;第三楼主要求不生成临时文 件,这对用findstr /o来获取行最大字符的方案来讲,无疑是锁上了大门。   综上所述总结如下:   代码要通用就要获取行最大字符数,一种方法是逐字符法,用逐字符法效率上就存在很大问题; 第二种方法是使用findstr /o一次性获取每行字符偏移量,再通过处理获得行最大字符数,效率上比 逐字符法是高多了,但因为单用findstr /o是不能获得文本行未行字符偏移量的,必须要对未行强加 回车,在不破坏原文件的情况下就要用到临时文件。   而我们写代码时一般遵循四条原则:高效率、通用、简洁、尽量不生成临时文件,其中首要的 一条就是高效,其次是通用,至于简洁和有无临时文件都不是主要考虑因素,所以依此主次关系我 给出以下两种方案: 一、通用性差一点(数值字符都在一行内是绝对没问题的),效率高,代码简洁,无临时文件: @echo off&setlocal enabledelayedexpansion for /l %%i in (1,1,) do set "kong=!kong!#" for /f %%i in (1.txt) do ( set "str=%%i%kong%" set "a=!str:~,!" set "a=!a:%%i=!" set "_!a!%%i=a" ) for /f "delims==_" %%i in ('set _') do ( set "str=%%i" echo !str:#=! ) pause>nul 二、通用性极高,效率一般,生成临时文件,代码较复杂:   pusofalse:

推荐整理分享批处理数值排序问题(批处理计数),希望有所帮助,仅作参考,欢迎阅读内容。

批处理数值排序问题(批处理计数)

文章相关热门搜索词:批处理 数组,批处理顺序执行命令,批量排序文件名,批处理pause,批处理pause,批量排序,批处理顺序执行命令,批处理顺序执行命令,内容如对您有帮助,希望把文章链接给更多的朋友!

文本最末列数值乘一个数的批处理实现 a.txt1##.0###.#######2#.8###.########.0##.##.#######4##.#.########以#和空格作为分隔符,最后一列的数值乘以7,其他不变。已知

批处理按要求将字符串分段输出的实现代码 一、要求用批处理随机输出个字符到1.txt中的一行,内容类同如下:代码:xhq3ma+remgofmsevhrna4g5r8pl9cjardezqjwj3m8itamh0a4itzd6jz8cmrfmibmhr0wmccyb8qnp2qh4rvlwff6yr2ez4

批处理实现一行内容分行输出 a.txt:代码:aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九输出如下:代码:abcdefghiABCDEFGHI一二三四五六七八九唯一要求,老手略过,留给新手做练习,

本文链接地址:https://www.jiuchutong.com/biancheng/376940.html 转载请保留说明!

上一篇:批处理实现文本内容横列变纵列的代码(批处理文本文件如何建立)

下一篇:文本最末列数值乘一个数的批处理实现(excel的最后一列)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络