--lua
function LoadArray(arr,FileName)
local sep=chr(32) -- определяем разделитель строки (пробел)
local nar={} -- создаём массив для чтения строк файла
local f=io.open(FileName,"r")
for v in f:lines() do -- читаем файл по строкам
nar[#nar+1]=v -- добавляем в массив
end
f:close() -- закрыть файл
for ci=1, #nar do
i,x=1,1 -- i индекс столбца массива, x позиция поиска в строке табуляции
dl = string.len(nar[ci])
table.insert (arr, {})
while true do
ns = string.find(nar[ci],sep,x,true)
if type(ns) == "nil" then dd = dl
else dd = ns-1
end
stmp = string.sub(nar[ci],x,dd)
dig = tonumber(stmp)
if type(dig) == "nil" then arr[ci][i] = stmp
else arr[ci][i] = dig
end
if type(ns) == "nil" then break end
i,x=i+1,ns+1
end
end
end
function SaveArray(arr,FileName)
local f=io.open(FileName,"w")
for ci=1,#arr do
for i=1,#arr[ci] do
if i == #arr[ci] then f:write(arr[ci][i])
else f:write(arr[ci][i] .. chr(32))
end
end
f:write("\r\n")
end
f:close()
end
function mySort(a,B)
if a[1] < b [1] then
return true
else
if a[1] == b [1] and a[2] < b [2] then -- если первые элементы равны, сравнить вторые
return true
end
end
return false
end
local tmp={}
local filename = [[C:\TMP\234.txt]]
LoadArray(tmp,filename)
table.sort(tmp,mySort)
local filenamenew = [[C:\TMP\345.txt]]
SaveArray(tmp,filenamenew)
stop_script()
Дарк, отформатируй мою хрень.
Поскольку текстовый файл, поэтому разделителем является пробел, если по уму, то надо делать табуляцию chr(9) вместо пробела chr(32)