Avatar billede armena Nybegynder
31. januar 2003 - 18:24 Der er 13 kommentarer og
1 løsning

Listview items... gemme

Jeg er ved at lave et program hvor jeg bruger listview. Jeg skal så have gjort sådan at man kan gemme listviews items i en tekst fil eller andet.

Har prøvet sådan:

Listview1.Items.Savetofile('list.txt');

Men det virker ikke. Der findes ikke noget der hedder savetofile i listview.items

Hvad skal jeg så gør?

p.s bruger Delphi 7

MVH.
ALA
Armen@alawork.dk
http://alawork.dk
Avatar billede abpdk Nybegynder
10. februar 2003 - 23:18 #1
Prøv med følgende:

procedure TForm1.SaveListToFile(filename: String);
var
  S: TStringList;
  i: integer;
begin
  S:=TStringList.Create;
  for i:=0 to ListView1.Items.Count-1 do
    S.Add(ListView1.Items.Item[i].Caption+','+ListView1.Items.Item[i].SubItems.CommaText);
  S.SaveToFile(filename);   
end;

procedure TForm1.OpenListFromFile(filename: String);
var
  S,S1: TStringList;
  i,j: integer;
  ListItem: TListItem;
begin
  ListView1.Items.Clear;

  S:=TStringList.Create;
  S1:=TStringList.Create;
  S.LoadFromFile(filename);
  for i:=0 to S.Count-1 do begin
    S1.CommaText:=S.Strings[i];
    ListItem:=ListView1.Items.Add;
    for j:=0 to S1.Count-1 do
      if j=0 then
        ListItem.Caption:=S1.Strings[j]
      else
        ListItem.Subitems.Add(S1.Strings[j]);
    S1.Clear;
  end;
  S1.Free;
  S.Free;
end;
Avatar billede armena Nybegynder
13. februar 2003 - 21:30 #2
den melder fejl ved "(filename)" hvad skal jeg gøre?
Avatar billede abpdk Nybegynder
13. februar 2003 - 22:01 #3
Hvilken linje?
Avatar billede armena Nybegynder
13. februar 2003 - 22:39 #4
I denne linie: "S.SaveToFile(filename);"

Men den vil muligvis også melde fejl i denne:
"S.LoadFromFile(filename);"
Avatar billede armena Nybegynder
13. februar 2003 - 22:54 #5
sorry det var vist mig der lavede en fejl.

Hvordan kalder jeg de procedure?
SaveListToFile(filename: string); ?
LoadlListFromFile(filename: string); ?
Avatar billede armena Nybegynder
14. februar 2003 - 13:42 #6
den melder noget med Llegal character in .. ''.
Avatar billede abpdk Nybegynder
14. februar 2003 - 14:52 #7
Du kan f.eks. bruge en TButton og en TOpendialog. Så smidder du bare denne kode i knappens OnClick event:

if Opendialog1.Execute then
  SaveListToFile(Opendialog1.Filename);
Avatar billede armena Nybegynder
14. februar 2003 - 20:52 #8
den melder fejl ved selve procedurene SaveListToFile og LoadListFromFile
Avatar billede abpdk Nybegynder
14. februar 2003 - 20:57 #9
De skal selvfølgelig erklæres i erklæringen af din Form. Her er et eksempel med en tom form:

type
  TForm1 = class(TForm)
  private
    { Private declarations }
    procedure SaveListToFile(filename: String);
    procedure OpenListFromFile(filename: String);
  public
    { Public declarations }
  end;
Avatar billede armena Nybegynder
14. februar 2003 - 23:14 #10
dette har jeg gjort
Avatar billede abpdk Nybegynder
14. februar 2003 - 23:16 #11
Kan du ikke lige skrive præcist hvad det er den siger?
Avatar billede armena Nybegynder
20. februar 2003 - 20:50 #12
Nu melder den ingen fejl, men når jeg tilføjer 2 items og lukker programmet så kan den ikke gemme dem. Kun hvis der kun er 1 item i listviewen ??

hvad gør jeg?
Avatar billede abpdk Nybegynder
21. februar 2003 - 17:32 #13
Det kan jeg jo ikke fortælle dig når jeg ikke kender de præcise fejlmeddelelser.

Nu har jeg uploadet et eksempel med ovenstående kode. Du kan hente den her:
http://www.geocities.com/abp_games/
Avatar billede abpdk Nybegynder
27. februar 2003 - 00:15 #14
Har du fundet ud af det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester