
【已解決】批處理按數據出現次數多少排序次數相同的如何按出現先后順序排序最后由 思想之翼 于 -12-16 21:17
txt文本數據格式格式為:1 2 3 4 5 6 7 8 9 0 1 29 8 7 6 5 4 3 2 1 0 0 9... ...... ...上述代碼是 逐行按出現次數從多到少排序,出現次數相同的,則從小到大排列,未出現的數據也是從小到大排列,排序結果寫入另一個txt文本現在有2個疑問,沒有頭緒:1、對于出現次數相同的數據,如果不是從小到大排列,而是按照出現先后順序排列,如何解決?比如:9 8 7 6 5 4 3 2 1 0 0 99 0出現2次,8 7 6 5 4 3 2 1出現1次排序為 9 0 8 7 6 5 4 3 2 12、對于出現次數相同的數據,如果不是從小到大排列,而是隨機排列 對于未出現的數據,也不是從小到大排列,也隨機排列 如何解決?nclick="copycode($('code0'));">復制代碼
- @set @n=0;
- var fd = Wscript.Arguments(0);
- var fso = new ActiveXObject('scripting.FileSystemObject');
- while (!Wscript.StdIn.AtEndOfStream) {
- var f = Wscript.StdIn.ReadLine();
- var arr = readTextFile(f).split('rn');
- var str = '';
- for(var i=0; i<arr.length; i++){
- if (!/^s*$/.test(arr[i])) str += getNum(arr[i]) + 'rn';
- }
- fso.OpenTextFile(fd + f, 2, true).Write(str)
- }
- function readTextFile(strFile) {
- var objFile = fso.OpenTextFile(strFile, 1);
- var s = objFile.ReadAll();
- objFile.Close(); objFile = null;
- return s
- }
- function getNum(s) {
- var ar = [];
- for (var i=0; i<=9; i++) {
- ar.push(s.split(i).length + = + i);
- }
- ar.sort(function(x,y){return y.split(=)[0]-x.split(=)[0]});
- return ar.join( ).replace(/d+=/g, );
- }

