Avatar billede mr_ruggerio Nybegynder
05. december 2001 - 17:15 Der er 10 kommentarer og
1 løsning

Læse en linie af gangen

Hvordan får man Delphi til at læse én linie af gangen fra en fil? Hvis jeg eksempelvis har en fil der ser således ud:

Linie1
Linie2
Linie3

Hvordan kan jeg indlæse Linie2 i en variabel uden at indlæse de andre linier??
Avatar billede ziron Nybegynder
05. december 2001 - 17:16 #1
prøv at se det svar jeg gav dig før...

/ZIRON
Avatar billede mr_ruggerio Nybegynder
05. december 2001 - 17:20 #2
Det virker ikke med readln. Den skriver som sagt incompatible types...
Avatar billede ziron Nybegynder
05. december 2001 - 17:21 #3
her der læser du alle linierne igennem:

procedure TForm1.Button1Click(Sender: TObject);
var
  x: String;
  f: Textfile;
begin
  AssignFile(f, \'C:\\hejhejhej.txt\');
  Reset(f);
  while not eof(f) do
    begin
      readln(f,x);
      ShowMessage(x);
  end;
end;

og så smider du det bare ind i et array og så kan du ellers bare lege med alle de linier du vil...

/ZIRON
Avatar billede mr_ruggerio Nybegynder
05. december 2001 - 17:29 #4
Det virker jo ikke. Den opfatter bare samtlige linier som én stor linie.
Avatar billede ziron Nybegynder
05. december 2001 - 17:31 #5
hmmm sku da ikke på min, den læser linie for linie...

prøv at send din fil til ziron@kulhytten.dk også dit projekt, hvis det er...

/ZIRON
Avatar billede mr_ruggerio Nybegynder
05. december 2001 - 17:34 #6
Ok, det virker nu. Jeg misforstod vist din kode. Undskyld, jeg afviste dig før :-( Men tak skal du ha.
Avatar billede ziron Nybegynder
05. december 2001 - 17:34 #7
prøv dette:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    vis_en_linie: TButton;
    procedure Button1Click(Sender: TObject);
    procedure vis_en_linieClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    linierne : array[1..100] of string;
    i : Integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x: String;
  f: Textfile;
begin
  AssignFile(f, \'C:\\hejhejhej.txt\');
  Reset(f);
  while not eof(f) do
    begin
      inc(i);
      readln(f,x);
      linierne[i] := x;
      ShowMessage(x);
  end;
end;

procedure TForm1.vis_en_linieClick(Sender: TObject);
var
  linienr : String;
begin
  InputQuery(\'Linie frem viser...\', \'Indtast nr. på den linie du vil se...\', linienr);
  ShowMessage(linierne[StrToInt(linienr)]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i := 0;
end;

end.

/ZIRON

Avatar billede ziron Nybegynder
05. december 2001 - 17:35 #8
okay det er så godt og det hele går nu, bare du får afleveret dit projekt, ik???  :)

fortsat god arbejdslyst :)

/ZIRON
Avatar billede mr_ruggerio Nybegynder
05. december 2001 - 17:37 #9
Tak for hjælpen!! Og endnu en gang; undskyld jeg afviste dig før, jeg læste ikke din kode rigtigt...
Avatar billede ziron Nybegynder
05. december 2001 - 17:40 #10
hehe det går nok skal du se :)

/ZIRON
Avatar billede martinlind Nybegynder
05. december 2001 - 21:30 #11
Prøv med en TStringList i stedet for, det er meget nemere og uden begrænsninger MyList.LoadFromFile(), og så har du hele filen inde i en line.
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