Gemme items af en listview

Tags:    delphi

<< < 12 > >>
Jeg er ved at lave et program hvor jeg bruger listview. Jeg skal så have gjort sådan at man kan gemme item'ne i en tekst el.

Har prøvet sådan:
<pre>
Listview1.Items.Savetofile('list.txt');
</pre>
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



12 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jeg er ved at lave et program hvor jeg bruger listview. Jeg skal så have gjort sådan at man kan gemme item'ne i en tekst el.


Problemet med ovenstående problemstilling er hvis du ønsker at hente de gemte værdier ind i din ListView igen. Så er det nødvendigt at gemme i et format der angiver hvad der er Items og SubItems. Til dette er det klart nemmest blot at gemme hele komponenten til en fil som følgende:

Fold kodeboks ind/udKode 


Hvorefter det gemte kan hentes ind i komponenten igen ved hjælp af følgende:

Fold kodeboks ind/udKode 


Ovenstående kode gør dog at al information om den givne ListView gemmes hvormed filens størrelsen vil blive noget større end hvis du kun havde gemt værdierne. Derudover er den gemte fil i binær.

Hvis du ikke ønsker at hente de gemte værdier ind i din ListView igen og samtidigt gerne vil gemme indholdet af din ListView som en normal tekstfil så kan det gøres på følgende måde:

Fold kodeboks ind/udKode 


Hvis du ønsker at hente de gemte værdier ind i din ListView igen og samtidigt ønsker at de skal gemmes som tekst, så bliver du nød til konstruere et format der kan angive hvad der "hænger sammen". Må jeg anbefale XML? :)[Redigeret d. 31/01-03 20:01:10 af MHA]



Jeg er ved at lave et program hvor jeg bruger listview. Jeg skal så have gjort sådan at man kan gemme item'ne i en tekst el.

Problemet med ovenstående problemstilling er hvis du ønsker at hente de gemte værdier ind i din ListView igen. Så er det nødvendigt at gemme i et format der angiver hvad der er Items og SubItems. Til dette er det klart nemmest blot at gemme hele komponenten til en fil som følgende:

Fold kodeboks ind/udKode 


Hvorefter det gemte kan hentes ind i komponenten igen ved hjælp af følgende:

Fold kodeboks ind/udKode 


Ovenstående kode gør dog at al information om den givne ListView gemmes hvormed filens størrelsen vil blive noget større end hvis du kun havde gemt værdierne. Derudover er den gemte fil i binær.

Hvis du ikke ønsker at hente de gemte værdier ind i din ListView igen og samtidigt gerne vil gemme indholdet af din ListView som en normal tekstfil så kan det gøres på følgende måde:

Fold kodeboks ind/udKode 


Hvis du ønsker at hente de gemte værdier ind i din ListView igen og samtidigt ønsker at de skal gemmes som tekst, så bliver du nød til konstruere et format der kan angive hvad der "hænger sammen". Må jeg anbefale XML? :)[Redigeret d. 31/01-03 20:01:10 af MHA]


Mange tak!! det virker!! :D

Men hvordan gør jeg sådan at hvis filen ikke allerede er opretter så skal programmet gør det??

MVH.

ALA



Men hvordan gør jeg sådan at hvis filen ikke allerede er opretter så skal programmet gør det??


Jeg tror lige at jeg skal have udpenslet hvad du mener med "så skal programmet gøre det" før jeg kan svare. Hvad er hensigten?



Men hvordan gør jeg sådan at hvis filen ikke allerede er opretter så skal programmet gør det??

Jeg tror lige at jeg skal have udpenslet hvad du mener med "så skal programmet gøre det" før jeg kan svare. Hvad er hensigten?


Altså så den opretter filen hvis den ikke allerede er opretter :D

Forstår du nu?

MVH.
ALA




Forstår du nu?


Nej ikke helt :)

Jeg forstår godt at du vil havde filen generet hvis den ikke allerede eksisterer, men hvilke værdier skal programmet gemme i filen? Hvornår i programmet ønsker du filen oprettet og med hvilke værdier? Hvis det er dem som der er angivet i din ListView så skal du bare anvende den kode jeg har angivet en passende event.

Derudover, hvilken kode har du valgt? Den hvor du gemmer hele komponenten eller den hvor du kun gemmer tekst-værdierne?



Jeg har valgt den med Filestream!

Det jeg gerne vil have at, når formen starter så vil programmet melde fejl om at den ikke kan finde filen den skal loade fordi den ikke findes. Derfor vil jeg gerne have en kode til at gøre sådan at den automatisk opretter .dat filen hvis det ikke exsistere.

:D

MVH.
ALA




Hvilke værdier skal din ListView indeholde hvis .dat-filen ikke eksisterer?

Mit bud ville være ingen (men nu ved jeg selvfølgelig heller ikke hvordan du anvender din ListView), hvorfor jeg ville smide følgende i din forms OnShow-event (eller lignende), således at komponten bliver hentet ved opstart hvis filen eksisterer:

Fold kodeboks ind/udKode 


På den måde bliver komponenten kun hentet fra .dat-filen, hvis .dat-filen eksisterer.

Hvis ovenstående ikke er det du er ude efter, så har jeg behov for at vide hvilke værdier .dat-filen skal genereres med i tilfælde af at .dat-filen ikke eksisterer[Redigeret d. 01/02-03 10:11:30 af MHA]



Jeg bruger listview til at bare fået add'et nogle items i den. Hvis du så selv har testen din kode, så når du starter programmet vil den melde en fejl om at den ikke kan finde listview.dat fordi at den ikke er oprettet.

Det jeg så søger efter er at jeg kan vil have lavet sådan at når programmet starter op så skal den tjekke om Movieadds.dat og Musicadds.dat findes. Hvis de 2 filer ikke findes, så skal programmet oprette filerne i den samme mappe hvor .exe filen ligger (med Filestream).


Håber du forstår nu :D

MVH.
Armen
Armen@alawork.dk
http://alawork.dk



Hejsa.

Hvis du anvender funktionen FileExists så kan du kontrollere om filen eksisterer eller ej og på den måde undgå fejl hvis den ikke eksisterer.

Hvis filen ikke eksisterer så vil du gerne have den oprettet, men jeg har endnu ikke fået svar på om filen skal indeholde noget "data" eller om den blot skal oprettes således at der ikke forekommer en fejl når du forsøger at loade filen?

Så skal filen oprettes med standard-værdier hvis denne ikke eksisterer eller er det blot for at undgå fejlmeddelelsen?



Det skal indholde data, altså listview1 og listview2 items :)

MVH.
ALA




<< < 12 > >>
t