Показать сообщение отдельно
  #3  
Старый 25.06.2013, 06:23
demon-sheff demon-sheff вне форума
Прохожий
 
Регистрация: 24.06.2013
Сообщения: 29
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Каков принцип копирования этого
Код:
...
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 не совсем, зачем столько символов от конца строки вырезается при копировании, просветите пжлст. Похоже что-то или слишком мало или слишком много обрезается при этой операции.
в memo4 находится подгружаемый текст, такого содержания:
package_n_145114eb-a009-4774-9da4-180be513209c.xml
package_n_3812d4c1-f850-4e75-8a6a-2b8653656921.xml
package_n_83b9004c-9ad2-48e3-bee5-f86f33fcec06.xml
package_n_aa1da6fd-0a78-4b00-a9ce-001110a3c712.xml
package_n_bd6b0172-a9a6-4849-9f61-df32bca15923.xml
package_n_db29d604-164c-4af2-a9ec-dab1a1732bf9.xml
package_n_fc450acd-3bf1-4457-b372-c8fb07530265.xml
а в memo6 текст по аналогии загружаемый как и предыдущий и содржит:
req_145114eb-a009-4774-9da4-180be513209c.zip
req_aa1da6fd-0a78-4b00-a9ce-001110a3c712.zip
req_db29d604-164c-4af2-a9ec-dab1a1732bf9.zip
req_fc450acd-3bf1-4457-b372-c8fb07530265.zip

а такое маленькое количество символов из-за того, что я не знал как это все дело вывести полностью и действительно, оно мне показывает не полностью число, а только частично. Если укажите на недостаток буду только признателен.
Мне удалось решить поставленную задачу только через listbox, правда при выводе возникают дубликаты. Код выглядит примерно так
Код:
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);
      ListBox4.Items.Add(St);
     end;
      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);
           ListBox5.Items.Add(Sa);
           end;
        end;
   end;
   begin
   for i := 0 to Listbox4.Items.Count - 1 do
   for j := 0 to Listbox5.Items.Count - 1 do
   if pos(ListBox4.Items.Strings[i],ListBox5.Items.strings[j])>0 then
   ListBox6.Items.Add(listbox5.Items.Strings[j]);
   end;
end;
Ответить с цитированием