[Delphi] Jak zapisać/odczytać zawartość listview

Odpowiedz Nowy wątek
2002-12-23 12:46

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

Jak zapisać całą zawartość listview z captionami i subitemsami do np. txt ?! A potem jeszcze dobrze odczytać??

Pozostało 580 znaków

2002-12-23 13:07

Rejestracja: 17 lat temu

Ostatnio: 15 lat temu

0

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ę.


po prostu siwY

Pozostało 580 znaków

2002-12-23 13:09

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

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 ;-(

Pozostało 580 znaków

2002-12-23 13:25

Rejestracja: 18 lat temu

Ostatnio: 16 lat temu

0

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.... :-) :-)


Moje dni na 4p sa policzone.... :(
By

Pozostało 580 znaków

2002-12-23 17:08

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

ALE CHODZI MI O TĄ PĘTLE TAK TO SE PORADZE!!!
;-(

Pozostało 580 znaków

2002-12-23 17:49

Rejestracja: 18 lat temu

Ostatnio: 7 lat temu

0

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;

Pozostało 580 znaków

2002-12-24 10:14
Moderator

Rejestracja: 17 lat temu

Ostatnio: 3 godziny temu

0

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.

Pozostało 580 znaków

2002-12-24 11:26

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

a oczyt?

Pozostało 580 znaków

2002-12-24 11:42

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

Taa
Zapisywanie działa ale odczyt w nie:((((((

Pozostało 580 znaków

2002-12-24 12:46
Moderator

Rejestracja: 17 lat temu

Ostatnio: 3 godziny temu

0

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

Pozostało 580 znaków

2002-12-24 22:23

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

dziwne że ci to dobrze działa...

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0