Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListView1, заполнение колонок из файлов [D7, XP]


gvozdkoff ©   (2011-12-26 12:52:00) 

всем привет, столкнулся с проблемой.
Задача.
На форме находится ListView, который имеет 2 столбца.
Есть 2 текстовых файла (в одном указывается название продукта , во втором дата).
И вот надо как то сделать так, чтобы в один 1-й столбец загружались записи из 1-го файла, а во 2-й столбец загружались данные из 2-го файла.

В первый столбец загружаю нармально

procedure TForm1.Button7Click(Sender: TObject);
var
i:integer;
DSL,SL: TStringList;
begin
////////////////////
SL := TStringList.Create;
try
  SL.LoadFromFile('link.txt');
  SL.Text := StringReplace(SL.Text, '##'#13#10, '', [rfReplaceAll]);
   i := 0;
       while i < SL.Count do
           begin
                with ListView1.Items.Add do
                     begin
                           Caption := SL[i];

                     end;
                Inc(i);
           end;
       finally
end;
   SL.Free;


Вот это был первый вариант. пробую с Listview1.Items.Item[k].SubItems.LoadFromFile


procedure TForm1.Button8Click(Sender: TObject);
var
i, k , s:integer;
DSL,SL: TStringList;
LI, SLI:string;
   begin
       SL := TStringList.Create;
       DSL := TStringList.Create;
       while i < SL.Count do begin
               with (ListView1.Items.Add()) do begin
                 Caption := LI;
                SubItems.Add(SLI);
                end;
        end;
       try
           SL.LoadFromFile('link.txt');
           DSL.LoadFromFile('data.txt');
           SL.Text := StringReplace(SL.Text, '##'#13#10, '', [rfReplaceAll]);
           DSL.Text := StringReplace(DSL.Text, '##'#13#10, '', [rfReplaceAll]);
           i := 0;
           while i < SL.Count do
           begin
                with (ListView1.Items.Add()) do
                begin
                           caption := SL[i];
                end;
           Inc(i);
           end;

             k := 0;
         while k < DSL.Count do
          begin
              with (ListView1.Items.Add()) do
              begin
                             SLI:= DSL[k];                          Listview1.Items.Item[k].SubItems.LoadFromFile('data.txt');
                end;
          Inc(k);
          end;
       finally
     end;


получается  что дата выставляется 1 раз к первой строке, в вариациях выставляется одна и та же дата для всех записей 1-го столбца.

Подскажите пожалуйста, в чем ошибка


gvozdkoff   (2011-12-26 14:29:00) [1]

вот  это дааа !!! спасибо большое, а то я чего то мудрил, да так и не получилось.
Еще раз спасибо за помощь


RWolf   (2011-12-26 13:05:00) [2]

slCap.LoadFromFile('captions.txt');
sl1.LoadFromFile('column1.txt');
sl2.LoadFromFile('column2.txt');
Assert((slCap.Count=sl1.Count) and (slCap.Count=sl2.Count), 'Число строк в файлах не совпадает!');
for i:=0 to slCap.Count-1 do begin
 with ListView1.Items.Add() do begin
   Caption := slCap[i];                          
   SubItems.Add(sl1[i]);
   SubItems.Add(sl2[i]);
 end;
end;


KilkennyCat   (2011-12-26 13:00:00) [3]


> Есть 2 текстовых файла (в одном указывается название продукта
> , во втором дата).

формат хранения данных?


Наверх

Титульная страница Поиск, карта сайта Написать письмо