Avatar billede smolle Nybegynder
26. september 2003 - 14:01 Der er 10 kommentarer og
1 løsning

Åbne kun en linie i txt-fil. Hvordan?

Jeg har nogle listboxe, som skal udfyldes med data via en Open.Dialog. Hvis jeg så har en txt-fil med nogle linier data, så skal man f.eks. i første listbox kun åbne første linie i den første listbox. I den næste listbox, skal den så vise anden linie i txt-filen osv.
Jeg har foreløbig sat dette op:

procedure TForm1.bn1Click(Sender: TObject);
begin
if OpenDialog1.execute then
begin
listbox1.clear;
listbox1.Items.loadfromfile(opendialog1.filename);
end;

end;

men det åbner jo hele txt-filen i den første listbox. Hvordan løser jeg dette?
Avatar billede stefanfuglsang Juniormester
26. september 2003 - 14:19 #1
Du åbner filen i et TStrings-object, løber igennem linierne, der vist hedder .Strings(index) og sætter disse ind i listboxene
Avatar billede stefanfuglsang Juniormester
26. september 2003 - 14:23 #2
Mit Delphi er lidt rustent men noget i stil med


var
str: TString;
begin
  str.Loadfromfile(blabla);
  for i=1 to str.count do
  begin
    //gør noget med str.Stríngs[i]
  end
end
Avatar billede smolle Nybegynder
26. september 2003 - 14:27 #3
Kunne du beskrive det lidt dybere? Jeg er stadig ny i det her... Hvor finder jeg TStrings-object?
Avatar billede smolle Nybegynder
26. september 2003 - 14:27 #4
okay...prøver lige
Avatar billede stefanfuglsang Juniormester
26. september 2003 - 14:33 #5
Prøv at slå TStrings op i hjælpen .

Du finder ikke TStrings på dine toolbars, det er ikke et synligt objekt som f.eks. Listbox.
(Grunden til at jeg ikke giver flere detaljer er at jeg ikke har arbejdet med Delphi i de seneste 5-6 år, men bruger C++ Builder, der ligner meget. Jeg kunne bare ikke lade være med at prøve at svare ...)
Avatar billede smolle Nybegynder
26. september 2003 - 14:35 #6
[Error] Unit1.pas(641): Undeclared identifier: 'TString'
Er du sikker på at det ikke bare er string?
Avatar billede snowball Novice
26. september 2003 - 14:39 #7
Prøv med nedenstående:

procedure TForm1.Button1Click(Sender: TObject);
var
  TxtFil: TStringList;
begin
  if OpenDialog1.execute then begin
    TxtFil := TStringList.Create;
    TxtFil.LoadFromFile(OpenDialog1.FileName);
    Listbox1.Clear;
    Listbox1.Items.Add(TxtFil.Strings[0]);
    TxtFil.Free;
  end;
end;

Snowball
Avatar billede stefanfuglsang Juniormester
26. september 2003 - 14:40 #8
TStrings er med 's' til sidst - så vidt jeg husker
Avatar billede stefanfuglsang Juniormester
26. september 2003 - 14:42 #9
Ok - den hedder TStringList? I så fald point til snowball, jeg kan åbenbart ikke min Delphi længere :-<
Avatar billede smolle Nybegynder
26. september 2003 - 14:43 #10
Snowballs metode fungerede. Jeg skulle lige fatte det der TString. Hvis du ligger et svar får du point, Snowball.
Avatar billede snowball Novice
26. september 2003 - 14:47 #11
Svar :)

Snowball
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