Каков принцип копирования этого
Код:
...
St:=Copy(Memo4.Lines.Strings[i],11,length(Memo4.Lines.Strings[i])-12);
...
и этого
Код:
...
Sa:=Copy(Memo6.Lines.Strings[j],5,length(Memo6.Lines.Strings[j])-6);
...
в смысле, как выглядит содержимое строк в мемо полностью? 11 и 5 понятно, а вот 12 и 6 не совсем, зачем столько символов от конца строки вырезается при копировании, просветите пжлст. Похоже что-то или слишком мало или слишком много обрезается при этой операции.
Да и потом, вот в этом месте
Код:
...
for i := 0 to memo5.lines.Count - 1 do
if memo5.Lines.Strings[i]=memo7.Lines.Strings[j] then
memo8.Lines.Add(st);
for j := 0 to memo7.Lines.Count - 1 do
if memo7.Lines.Strings[j]=memo5.Lines.Strings[i] then
memo8.Lines.Add(sa);
...
происходит следующее - j не изменяется, она остаётся в значении присвоенном ей в предыдущем цикле на последней итерации, а когда прокручивается j, с i происходит тоже самое, она не изменяется, потому как вот
Код:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
j, i: integer;
sa, st: shortstring;
begin
for i := 0 to Memo4.Lines.Count - 1 do
begin
if (Pos('package_n_',Memo4.Lines.Strings[i]) <> 0) then
begin
St:= Copy(Memo4.Lines.Strings[i],11,Length(Memo4.Lines.Strings[i])-12);
Memo5.Lines.Add(st);
end;{if}
for j := 0 to Memo6.Lines.Count - 1 do
begin
if (Pos('req_', Memo6.Lines.Strings[j]) <> 0) then
begin
Sa:= Copy(Memo6.Lines.Strings[j], 5, Length(Memo6.Lines.Strings[j]) - 6);
Memo7.Lines.Add(sa);
end; {if}
end; {for j}
end; {for i}
//begin
for i := 0 to memo5.lines.Count - 1 do
if Memo5.Lines.Strings[i] = Memo7.Lines.Strings[j] then
Memo8.Lines.Add(st);
for j := 0 to Memo7.Lines.Count - 1 do
if Memo7.Lines.Strings[j] = Memo5.Lines.Strings[i] then
Memo8.Lines.Add(sa);
//end;
end;
отсюда и совпадение только в конце. Нужно ещё пару циклов добавить или объединить существующие.