Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Внизусовершенствование цикла Найти похожие ветки
← →
zorik (2007-10-15 16:10) [40]
> Dennis I. Komarov ©
?
← →
koha (2007-10-15 22:33) [41]- интересно, а такой алгоритм сколько работать будет?
var
Form1: TForm1;
LFull,LShort,LSource: TStrings;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,N,T: integer;
begin
//...........
//загружаем LSource
//......
//представим, что уже загрузили LSource каким-нибудь способом
N:=14;
for i := 0 to LSource.Count - 1 do begin
T:=LShort.IndexOf(LSource.Strings[i][n]);
if T = -1 then begin
LFull.Add(LSource.Strings[i]);
LShort.Add(LSource.Strings[i][n]);
end
else begin
LFull.Delete(i);
LShort.Delete(i);
end;
end;
//..................
end;
← →
koha (2007-10-15 22:58) [42]- Сорри кучу ошибок исправил, ну вобщем работающий пример, но далек от совершенства.
var
Form1: TForm1;
LFull,LShort,LSource: TStrings;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,N,T: integer;
St: String;
begin
st:=" "; // 10 цифр
LFull := TStringList.Create;
LShort := TStringList.Create;
LSource := TStringList.Create;
try
LSource.LoadFromFile("c:\Archive\test.txt");
//...........
//загружаем LSource
//......
//представим, что уже загрузили LSource каким-нибудь способом
N:=14;
for i := 0 to LSource.Count - 1 do begin
Move(LSource.Strings[i][N],ST[1],10);
memo1.Lines.Add(st);
T:=LShort.IndexOf(St);
if T = -1 then begin
LFull.Add(LSource.Strings[i]);
LShort.Add(ST);
end
else begin
LFull.Delete(i-1);
LShort.Delete(i-1);
end;
end;
//..................
memo1.Text:=LFull.Text;
finally
LFull.Free;
LShort.Free;
LSource.Free;
end;
end;
← →
koha (2007-10-15 23:29) [43]- создал этих Пупкиных 1460160 одинаковых сторок и в разных местах 4 строки изменил
время ушло на загрузку и сортировку всего ~ 1.5 секунды (грубый подсчет), Процессор: Core 2 Duo T5600 (1,83 Mг).
необходимо исправить строки:
LFull.Delete(i-1);
LShort.Delete(i-1);
на:
LFull.Delete(T);
LShort.Delete(T);
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.047 c