我已经将一个文本文件(名称)读入数组,我需要如何将这些名称按字母顺序排序并在丰富的编辑中显示?
请从这一点开始给我代码:
readln(MYFILE,ARR [I]);
'myfile'是文本文件,'arr'是字符串数组。 此外,我已将'i'声明为整数,即使它是一个字符串数组。那可以吗?
答案 0 :(得分:7)
使用TStringList而不是数组,并将Sort属性设置为true。
var
sortlist : TStringList; // Define our string list variable
begin
// Define a string list object, and point our variable at it
sortlist := TStringList.Create;
try
// Now add some names to our list
sortlist.Sorted := True;
// And now find Brian's age
sortlist.LoadFromFile(myfile);
// Do something.
finally
// Free up the list object
sortlist.Free;
end;
end;
答案 1 :(得分:3)
使用StringList然后很容易。 StringList也可以自动排序。 在这里查看示例(向下滚动): http://www.delphibasics.co.uk/Article.asp?Name=Files
答案 2 :(得分:2)
对不起。我忍不住了......
program BubblesortTextFile;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
MAX = 100;
FILE_NAME = 'C:\Text.txt';
type
TMyRange = 0..MAX;
var
i,j,top: TMyRange;
a: Array[TMyRange] of String;
f: TextFile;
tmp: String;
begin
//Init
i := 0;
//Read all items from file
Assign(f, FILE_NAME);
Reset(f);
while not Eof(f) do
begin
ReadLn(f, a[i]);
Inc(i);
end;
Close(f);
top := i-1;
//Bubble sort (Never use this in real life...)
for i := Low(TMyRange) to top-1 do
for j := i+1 to top do
if a[j] < a[i]
then begin
tmp := a[i];
a[i] := a[j];
a[j] := tmp;
end;
//Print the array
for i := 0 to top do
WriteLn(a[i]);
//Wait for user
ReadLn;
end.
如果你是新手:Welcome, and good luck with Delphi.
如果您正在开展一个认真的项目:Get help...