16,748
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.Button1Click(Sender: TObject);
begin
memo2.Lines := SortMyStringlist(memo1.Lines, 3);
end;
procedure TForm1.Button5Click(Sender: TObject);
var MyList:TStringList;
FileName:string;
S,S1,S2,S3,SS1,SS2,SS3,SS4:WideString;
Top,i,j,k:Integer;
A : array of array [0..3] of String;
begin
FileName:='D:\A.txt';
MyList:=TStringList.Create;
MyList.LoadFromFile(FileName);
Top:=MyList.Count;
SetLength (A, Top); // 设置动态数组长度
for i:=0 to Top-1 do
begin
S:=MyList.Strings[i];
k:=Pos(',',S);
A[i,0]:=Copy(S,1,K-1);
S:=Copy(S,K+1,Length(S)-k);
k:=Pos(',',S);
A[i,1]:=Copy(S,1,K-1);
S:=Copy(S,K+1,Length(S)-k);
k:=Pos(',',S);
A[i,2]:=Copy(S,1,K-1);
A[i,3]:=Copy(S,K+1,Length(S)-k);
end;
for i:=0 to Top-2 do
for j:=i+1 to Top-1 do
begin
S1:=A[i,3];
S2:=A[j,3];
if S1>S2 then
begin
SS1:=A[i,0];
SS2:=A[i,1];
SS3:=A[i,2];
SS4:=A[i,3];
A[i,0]:=A[j,0];
A[i,1]:=A[j,1];
A[i,2]:=A[j,2];
A[i,3]:=A[j,3];
A[j,0]:=SS1;
A[j,1]:=SS2;
A[j,2]:=SS3;
A[j,3]:=SS4;
end;
end;
MyList.Clear;
for i:=0 to Top-1 do
MyList.Add(A[i,0]+','+A[i,1]+','+A[i,2]+','+A[i,3]);
MyList.SaveToFile(FileName);
MyList.Free;
end;
上述代码,经过测试。张三1,男,25,18606299991
李四2,女,21,13888888882
张三3,男,25,18606299993
李四4,女,21,13888888884
张三5,男,25,18606299995
李四6,女,21,13888888886
张三7,男,25,18606299997
李四8,女,21,13888888888
张三9,男,25,18606299999
李四11,女,21,13888888810
张三22,男,25,18606299911
李四33,女,21,13888888812
张三44,男,25,18606299913
李四55,女,21,13888888814
张三66,男,25,18606299915
李四77,女,21,13888888816
张三88,男,25,18606299917
李四99,女,21,13888888818
张三98,男,25,18606299919
李四76,女,21,13888888828
张三54,男,25,18606299929
李四32,女,21,13888888838
处理代码:
procedure TForm1.Button5Click(Sender: TObject);
var List1,List2: TStringList;
FileName:string;
i,j,k :integer;
A : array of array[0..3] of String;
S:string;
begin
List1 := TStringList.Create;
List2 := TStringList.Create;
FileName:='D:\1.txt';
List1.LoadFromFile(FileName);
SetLength(A, List1.Count);
for i:=0 to List1.Count-1 do
begin
List2.Clear;
List2.Delimiter := ',';
List2.DelimitedText :=List1.Strings[i];
for j:=0 to List2.Count-1 do
A[i,j]:=List2.Strings[j];
end;
// 排序
for i:=0 to List1.Count-2 do
for j:=I+1 to List1.Count-1 do
if A[i,3]>A[j,3] then
for k:=0 to List2.Count-1 do
begin
S:=A[i,k];
A[i,k]:=A[j,k];
A[j,k]:=S;
end;
List2.Clear;
for i:=0 to List1.Count-1 do
begin
S:='';
for j:=0 to 3 do
S:=S+A[i,j]+',';
S:=Copy(s,1,Length(S)-1);
List2.Add(S);
end;
FileName:='D:\2.txt';
List2.SaveToFile(FileName);
List1.Free;
List2.Free;
end;
处理后 后输出 D:\2.txt:
李四11,女,21,13888888810
李四33,女,21,13888888812
李四55,女,21,13888888814
李四77,女,21,13888888816
李四99,女,21,13888888818
李四76,女,21,13888888828
李四32,女,21,13888888838
李四2,女,21,13888888882
李四4,女,21,13888888884
李四6,女,21,13888888886
李四8,女,21,13888888888
张三22,男,25,18606299911
张三44,男,25,18606299913
张三66,男,25,18606299915
张三88,男,25,18606299917
张三98,男,25,18606299919
张三54,男,25,18606299929
张三1,男,25,18606299991
张三3,男,25,18606299993
张三5,男,25,18606299995
张三7,男,25,18606299997
张三9,男,25,18606299999