błądzimy.., potrzebuje tylko skutecznie odczytać plik który wcześniej zapisuje zrzut z rekodru.
tak zasępiłem komponent listview rekordem fv_lv1, wszystko działa rewelacyjnie, ale mam problem z czasem odczytu danych po uruchomieniu programu, trwa za długo.
Zapis trwa momentalnie dodaje separatory i wszystko zapisuje do pliku.
Ale odczyt po Pos i Copy trwa zdecydowanie za długo.
obecnie to wygląda tak:
i_pos:=Pos(s_sepend,s_linia);
if i_pos < 1 then //nie ten plik pomin!
begin
exit;
end;
while i_pos > 0 do
begin
application.ProcessMessages;
i_pos:=Pos(s_sepend,s_linia);
s_dane:=Copy(s_linia,1,i_pos-1);
Delete(s_linia,1,i_pos+1);
i_pos2:=Pos(s_seps,s_dane);
g[0]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[1]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[2]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[3]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[4]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[5]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[6]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[7]:=Copy(s_dane,1,i_pos2-1);
Delete(s_dane,1,i_pos2+1);
i_pos2:=Pos(s_seps,s_dane);
g[8]:=Copy(s_dane,1,i_pos2-1);
if g[1] = '' then //pomijaj jesli puste!
continue;
//-> dodaj lv1
r_idx_lv1:=anc_fv1.f1_lv1_add;
unit1.fv_lv1.item[r_idx_lv1].pusty:=1; //zajety!
unit1.fv_lv1.item[r_idx_lv1].Caption:=g[0];
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[1]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[2]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[3]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[4]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[5]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[6]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[7]);
unit1.fv_lv1.item[r_idx_lv1].Subitems.Add(g[8]);
//<- dodaj lv
end;
to działa bezbłędnie, ale odczyt jest za wolny!