这个文本文件如何排序?
按第2列数值由大到小排序,文本文件内容为:
测试1,14.1,9/9/9/,0/0/0/
测试5,9.6,1/1/1/0/,0/0/0/0/
测试4,11.7,4/3/4/4/,0/3/0/0/
测试3,14.7,8/8/8/8/,1/1/2/9/排序后变为
测试3,14.7,8/8/8/8/,1/1/2/9/
测试1,14.1,9/9/9/,0/0/0/
测试4,11.7,4/3/4/4/,0/3/0/0/
测试5,9.6,1/1/1/0/,0/0/0/0/
按第2列数值由大到小排序,文本文件内容为:
测试1,14.1,9/9/9/,0/0/0/
测试5,9.6,1/1/1/0/,0/0/0/0/
测试4,11.7,4/3/4/4/,0/3/0/0/
测试3,14.7,8/8/8/8/,1/1/2/9/排序后变为
测试3,14.7,8/8/8/8/,1/1/2/9/
测试1,14.1,9/9/9/,0/0/0/
测试4,11.7,4/3/4/4/,0/3/0/0/
测试5,9.6,1/1/1/0/,0/0/0/0/
解决方案 »
- 怎样写一个获取数据函数:用TCP/IP通讯,向服务端发送命令,并从服务端获得返回数据.
- cxLookupComboBox选中的时候,如何和那个数据源的记录定位保持一致呢?或者如何取key
- 拨号RAS软件拨通后,服务器端需要什么软件进行连接啊?
- 求教:怎样建数据库问题?
- delphi2005 asp.net学习示例二,有源码
- 请问把结构指针保存到treeview的data属性里面,是不是很占资源,要不要自己释放指针
- 怎么这个问题始终无人作答,真的是那末难吗,高手呢?
- 如何直接用一个桌面数据库(Access),而不用通过ODBC
- 想要判断dblistbox 中是否还有内容?
- 如何计算DataSet中的一个字段field1的和?
- 客户端用socketconnection连接应用服务器,总弹出"加载类型库/Dll出错"的错误窗口,应用服务器在远程服务器上.请问是怎么回事?
- 快过年了,散分庆祝!
要用得话
把过程readin,sort考出来就够了
调用后排好序的字符串放在a中,其中a[].s是原字符串,a[].v是关键字type node=record
s:string;
v:real;
end;var a:array[1..100] of node;
len:integer;function value(s:string):real; {返回关键字,就是第2列数}
var i,code:integer;
temp:real;begin
while s[1]<>',' do delete(s,1,1);
delete(s,1,1);
i:=1;
while s[i]<>',' do inc(i);
delete(s,i,length(s)-i+1);
val(s,temp,code);
value:=temp;
end;procedure readin; {读入}
var fin:text;
s:string;
begin
assign(fin,'data.in');
reset(fin);
while not eof(fin) do begin
readln(fin,s);
inc(len);
a[len].s:=s;
a[len].v:=value(s);
end;
end;procedure sort(l,r:integer); {快速排序}
var i,j:integer;
x:real;
temp:node;
begin
i:=l;j:=r;x:=a[i].v;
while i<j do begin
while a[i].v>x do inc(i);
while x>a[j].v do dec(j);
if i<=j then begin
temp:=a[i];a[i]:=a[j];a[j]:=temp;
inc(i);dec(j);
end;
end;
if (l<j) then sort(l,j);
if (i<r) then sort(i,r);
end;procedure out; {输出}
var i:integer;
begin
for i:=1 to len do
writeln(a[i].s);
end;begin
readin;
sort(1,len);
out;
end.