Gå til innhold

Illustrasjon - Hvordan laste inn tekst fra linje i TListBox?


Anbefalte innlegg

Jeg gjør først oppmerksom på at i illustrasjonen står det TstringList. Jeg mener: TListBox. Jeg har ett spørsmål angående denne illustrasjonen:

 

testphc.jpg

 

Når jeg klikker på "Legg til en Tittel"-knappen så legges det til en ny "tittel" i listeboxen.

Samtidig så lagres informasjonen ifra "memo1"-feltet i en txt fil som har samme navn som tittelen i tittelboxen.

 

Spørsmålet mitt er følgende:

Hvordan kan jeg gjøre slik at når jeg kjører programmet, å klikker på "tittlene" i listeboxen. Så lastes informasjonen i fra txt filen (som har samme navn som tittelen i listeboxen) inn i "memo2" feltet?

 

Som sakt der er 5 komponenter:

 

- TlistBox1 (tittelboxen)

- TEdit1 (Der man skriver inn ny tittel)

- TButton1 (Der man legger til ny tittel i tittelboxen og samtidig lagrer en txt fil med informasjon i fra memo1).

- TMemo1 (Der man skriver inn ny informasjon som lagres i en txt fil)

- TMemo2 (Der jeg vil at informasjonen i fra txt filene vises ettersom man klikker på tittlene i TListBox1).

 

Håper noen skjønner hva jeg mener og at illustasjonen gjør det enklere å forstå. Også håper jeg noen vet hvordan jeg kan gjøre dette. :thumbup: Takker for alle innlegg :D

Endret av Popsux
Lenke til kommentar
Videoannonse
Annonse
bruk funksjonen

 

memo1.Lines.SaveToFile(); - for å lagre

memo2.Lines.LoadFromFile();- for lese inn filen

 

innenfor parantesene har du det hel filnavnet med sti og det hele:

'c:\sti\sti2\filnavn.tx'

 

dette må du tilpasse bruket dit

 

Ok. Takker for infoen elg-elg123 :D Skal prøve dette nå.

Lenke til kommentar

Dette funket gradvis! Programmet leste bare den siste "tittelen" som ble lagt til. Men jeg laget et "drag en drop" felt,m slik at man kunne drege hver ListBox.Items til et felt for å lese hvilken som helst fil :D *happy*.. tok meg litt tid å justere å finne ut av det. Men fikk ihvertfall dette til å fungere (ps. Bildet er et "falsk" konsept av hva jeg egentlig lager). Men funker i allefall nå!

Endret av Popsux
Lenke til kommentar
Dette funket gradvis! Programmet leste bare den siste "tittelen" som ble lagt til. Men jeg laget et "drag en drop" felt,m slik at man kunne drege hver ListBox.Items til et felt for å lese hvilken som helst fil :D *happy*.. tok meg litt tid å justere å finne ut av det. Men fikk ihvertfall dette til å fungere (ps. Bildet er et "falsk" konsept av hva jeg egentlig lager). Men funker i allefall nå!
Lenke til kommentar

jeg viste at jeg hadde gjort noe lignede før i et eller annet program.

det var barre å finne det . noe som tok litt tid .

nå måte jeg også tilpasse det lit slik at det ble letter for deg å forstå eksemplene .

 

procedure TForm7.Button7Click(Sender: TObject);

VAR

F:TextFile;

S:STRING;

slutt:boolean;



begin

slutt:=false;

IF OPENDIALOG1.Execute THEN BEGIN

AssignFile(F, OPENDIALOG1.FileName); // opretter kontakt  med fil 

Reset(F);  // opner filen  - bruk rewrite(f) for å opprette ny fil  på disken

memo1.Clear;

REPEAT

Readln(F, S); // leser data   writeln(f,s)  skriver til filen 

if  eof(f)  then slutt:=true; // eof brukes bare når  det leses fra filen 



memo1.lines.Add(S); // legger inn en linje i momo feltet -  bruk "s:=memo1.Lines[L];"  for å lese fra et memofelt. "L"  er en variabel som for teller programmet hvilken linje i memofeltet  som det skal leses fra 

UNTIL  slutt;;

CloseFile(F); // lukker filen 

END;

end;

 

forå lese av alle linjene i memofelt så

bruker men en variabel eks:

for  L := 0 to memo1.lines.count-1 do begin

s:=memo1.lines[L];



end;

 

da vil det se slik ut :

procedure TForm7.Button7Click(Sender: TObject);

VAR

F:TextFile;

S:STRING;

slutt:boolean;



begin



IF savedialog1.Execute THEN BEGIN

AssignFile(F, savedialog1.FileName); // opretter kontakt  med fil 

rewrite(F);  // opner filen  - bruk "rewrite(f)" for å opprette ny fil  på disken

for  L := 0 to memo1.lines.count-1 do begin

s:=memo1.lines[L];

writeln(F, S); 

end;



CloseFile(F); // lukker filen 

END;

end;

 

 

for å teste det ut så trenger du

en memo komponet og en button

i tillegg bruker jeg en fielopendialog og en savedialog for at ma selv kan velge navnet på filen man skal lage/lese

 

dette eksemplet utføres når du trukker på knappen

her må du legge det inn i en buttonclik handling

 

 

jeg går ut fra at det meste forstår du.

men jeg skal forsøke å forklare litt.

 

du må altså bruke tekstfile delen

derfor er det en variabel som er sat ttil textfile

 

så bruker jeg funksjonen EOF for å kontrollere når det er slutt på filen

i eksemplet her så brukes jeg også en fileopendialog for å plukke ut filnavnet

dette fungerer bare på tekstfiler som er skrevet som ren tekst

 

for å plukke ut filnavnet fra stringlisten din :

filnavn:=listbox1.Items[listbox1.ItemIndex]; da vil du få teksten rett i variabeln "filnavn"

 

"filnavn" er en streng variabel

den komplette filnavnet vil så f.eks slik ut

"c:\sti\sti2"+filnavn"+'.txt"

 

hvis jeg har forklart meg lit klønete eller det virker for komplisert så skal jeg forsøke å hjelpe deg videre

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...