二维数组是这样定义的
type
Info = record
IDCard: string;
SignDate: string;
end;
A : array of Info;这是一个选择排序算法 procedure Sort(var A: array of Info);
var
I, J : Integer;
T:MuliIDCardInfo;
begin
for I := Low(A) to High(A) - 1 do
for J := High(A) downto I + 1 do
if A[I].IDCard>A[J].IDCard then
begin
T := A[I];
A[I] := A[J];
A[J] := T;
end;
end;数组中IDCard会有相同的记录情况,而且很多,所以我必须再根据SignDate
排一下序,同时再统计一下IDCard相同的个数。
有点像 Select Distinct IDCard From .......我现在的困惑是,怎样 根据 IDCard,同时又根据SignDate,排序?现在我只能根据 IDCard排序~~~ up有分
type
Info = record
IDCard: string;
SignDate: string;
end;
A : array of Info;这是一个选择排序算法 procedure Sort(var A: array of Info);
var
I, J : Integer;
T:MuliIDCardInfo;
begin
for I := Low(A) to High(A) - 1 do
for J := High(A) downto I + 1 do
if A[I].IDCard>A[J].IDCard then
begin
T := A[I];
A[I] := A[J];
A[J] := T;
end;
end;数组中IDCard会有相同的记录情况,而且很多,所以我必须再根据SignDate
排一下序,同时再统计一下IDCard相同的个数。
有点像 Select Distinct IDCard From .......我现在的困惑是,怎样 根据 IDCard,同时又根据SignDate,排序?现在我只能根据 IDCard排序~~~ up有分
解决方案 »
- 关于delphi的MD5算法
- delphi 三层工作原理
- oracle 如何在外连接中设置限制条件
- 通过动态联接库打开窗体时,并闭窗体后提示:错误指针操作。请教!!!
- 谁有《BORLAND传奇》一书的电子版或者链接,这里新华书店没有卖的!
- 如何在install shield for d4 中运行其它的程序?
- 将Ado数据集提取到Dbf数据表中,哪种方式最快?
- 关于PACS的图象处理代码,请高手帮助阅读一下谢谢
- 如何制作像QQ那样具有“停靠”和“隐藏”功能的窗体!
- 请教高手:如何比较“掩码编辑框”和数据库中当前当前记录的密码字段的内容是否相等?
- 这个问题如何解决?我不知该如何?
- adotable1,打开表table1,table1的字段有,姓名,性别,等
Select Distinct *
from
order by 我肯定想这样做啊~~~
var
I, J : Integer;
T:MuliIDCardInfo;
begin
for I := Low(A) to High(A) - 1 do
for J := High(A) downto I + 1 do
if A[I].IDCard>A[J].IDCard then
begin
T := A[I];
A[I] := A[J];
A[J] := T;
end;
end;
end;
for I := Low(B) to High(B) - 1 do
for J := High(B) downto I + 1 do
if B[I].IDCard>B[J].IDCard then
begin
T := B[I];
B[I] := B[J];
B[J] := T;
end;
end;
end;
end;不就可以了吗,当然,参数B的优先权会大。
我说的不是两个数组的排列啊~~我是二维数组啊~~唉~snake_eye(黄昏深处的白骨盾牌):要,谢谢~~我的mail [email protected]其他同志想要的发邮件给我,等snake_eye(黄昏深处的白骨盾牌)发给我,
我就转发给你们。
标题 二维数组排序,否则我会视为垃圾邮件,嘿嘿,没有办法。
var
I, J : Integer;
T:MuliIDCardInfo;
Count : Array of integer; //动态数组怎么用我忘了
begin
for ....
Count[I]:=1; for I := Low(A) to High(A) - 1 do
for J := High(A) downto I + 1 do
if A[I].IDCard>A[J].IDCard then
begin
T := A[I];
A[I] := A[J];
A[J] := T;
end;
if A[I].IDCard=A[J].IDCard then
if A[I].SingleDate>A[I].SingleDate
begin
Count[I]:= Count[I]+1;
T := A[I];
A[I] := A[J];
A[J] := T;
end;
end;
PS: 这是二维数组吗? 不要乱说
不就是String吗?看你的代码,IDCard应当是一个最大长度一定的String吧。比如说20个字符(足够大了吧。当然最好要确定最大长度,否则我的方法没有用)。
排序的时候设置一个S,然后将IDCard和SignDate相加,然后将相加的数据进行比较(如果IDcard长度不是最大长度,一律补空格)。
up up up up
up up upupupup
up up up
up up up
upupupup up