Jak zapisać całą zawartość listview z captionami i subitemsami do np. txt ?! A potem jeszcze dobrze odczytać??
Musisz zrobić własne procki, które bedą dokonywały zapisu/odczytu do pliku. Nie ma z tym dużo pracy - robiłem coś takiego niedawno ale żródła mam w domu. Jak nic do jutra nie wymyslisz to Ci podrzucę.
próbowałem pętle for:
np.
for i:=1 to listview1.items.count do (błąd)
for i:=0 to listview1.items.count do (też błąd)
for i:=1 to listview1.items.count-1 do (błąd [nuda] )
a potem to dodawanie do memo (visible false) i zapisywanie treści do pliku... HELP ;-(
Ja tam sobie sprytnie kiedys tam wykompbinowalem ze jesli listVoiew ma 3 kolumny, to do textfile zapisywane sa dane w mniej wiecej taki sposob, ze do pierwszej linijki zapisywany jest pierwszy wiersz z pierszej koilumny, do 2 linijki pierwszy wiersz z 2 kolumny, do 3 linijki 1 wiersz z 3 kol, pozniej do 4 linijki 2 wiersz z 1 kol, do 4 linijki 2 wiersz z 2 kol itd. Mam nadzieje ze mnie zobumiales.... :-) :-)
ALE CHODZI MI O TĄ PĘTLE TAK TO SE PORADZE!!!
;-(
Nie wiem może tak:
for i:=0 to ListView1.Items.Count-1 do
begin
Memo1.Lines.Add(ListView1.Items[I].Caption);
//dalej co tam chcesz :) np. Memo1.Lines.Add(ListView1.Items[I].Subitems[0];
end;
kiedyś to robiłem i wyszło mi coś takiego (działa):
[code]Stringi := TStringList.Create; //utwórz listę strngów
For j := 0 to ListView.Items.Count - 1 do //od 0 do liczby itemów
begin
Stringi.Append(ListView.Items.Item[j].Caption); //zapisuje tytuł
Stringi.AddStrings(ListView.Items.Item[j].SubItems); //zapisuje subitemy
end;
Stringi.SaveToFile(SaveDialog.FileName); //zapis do pliku
Stringi.Free; //zwolnij ram[/code]
U mnie działa. Odcyt w podobny sposób.
a oczyt?
Taa
Zapisywanie działa ale odczyt w nie:((((((
odczyt
[code]List.Items.Clear;
Stringi := TStringList.Create;
Stringi.LoadFromFile(dlgOpen.FileName);
For j := 0 to Stringi.Count div 3 - 1 do //powinno byc div przez ilosc linii na jeden item w listview
begin
Item := TListItem.Create(MainFrm.ListView.Items);
Item.Caption := Stringi.Strings[j * 3];
List.Items.AddItem(Item, -1); //tworzenie obiektu
Item.SubItems.Add(Stringi.Strings[j * 3 + 1]);
SubItems.Add(Stringi.Strings[j * 3 + 2]);
end;
Stringi.Free;[/code]
troche skomplikowane :) ale u mnie działa. w razie błędów spóbuj zmieniać wartości dzielenia (div 3 - 1). ewentulanie przesle ci fragment kodu mojego programu z wykorzystanym tym kodem
dziwne że ci to dobrze działa...
zobacz jeszcze to:
http://www.swissdelphicenter.com/en/showcode.php?id=729
ktos już o to pytał i mu działało
Dzięęęęęęęki działa:) NAwet szybko 8-0
wyszukiwarka forum czyni cuda :-)