Avatar billede flyboy Nybegynder
18. juni 2005 - 16:31 Der er 5 kommentarer

Åbne dat-fil

Hejsa.

Jeg har brugt følgende kode for at åbne nogle bestemt linier fra en DAT fil ind i nogle edit filer:

var
  L : TStringList;

begin
  L := TStringList.Create;
  L.LoadFromFile('Data1.DAT');
  Edit4.Text := L[0];
  Edit1.Text := L[1];
  Edit3.Text := L[2];
  Edit5.Text := L[3];
  Edit7.Text := L[4];
  Edit8.Text := L[5];
  Edit9.Text := L[6];
  Edit10.Text := L[7];
  FreeAndNil(L);
end;

efter at tallene i filen er blevet åbnet, bliver der lagt noget mere til hvorefter de nye tal skal gemmes i de linier hvor de gamle stod.
jeg har her prøvet:

var
  L : TStringList;
begin
  L := TStringList.Create;
  L.savetofile('Data1.DAT');
  L[0]:= Edit4.Text ;
  L[1]:= Edit1.Text ;
  L[2]:= Edit3.Text ;
  L[3]:= Edit5.Text ;
  L[4]:= Edit7.Text ;
  L[5]:= Edit8.Text ;
  L[6]:= Edit9.Text ;
  L[7]:= Edit10.Text ;

  FreeAndNil(L);
end;

men når jeg prøver at køre programmet siger den:

EstringListError with message "list index out of bounds (0)"

Når jeg derefter åbner DAT filen i word, har den slettet alt i filen...

Er der nogle som kan sige mig hvordan jeg får gemt tallere i de samme linier som de blev åbnet så de nye tal bare overskriver de gamle?
Avatar billede flyboy Nybegynder
18. juni 2005 - 16:32 #1
stavefejl i toppen... jeg har ikke brug for at åbne den med gemme den...
Avatar billede kroning Nybegynder
18. juni 2005 - 16:56 #2
var
  L : TStringList;
begin
  L := TStringList.Create;
  L.Add(Edit4.Text);
  L.Add(Edit1.Text);
  L.Add(Edit3.Text);
  L.Add(Edit5.Text);
  L.Add(Edit7.Text);
  L.Add(Edit8.Text);
  L.Add(Edit9.Text);
  L.Add(Edit10.Text);
  L.savetofile('Data1.DAT');

  FreeAndNil(L);
end;
Avatar billede flyboy Nybegynder
18. juni 2005 - 23:01 #3
det virker stadig ikke....

den bliver ved med at komme med fejlen...
Avatar billede kroning Nybegynder
19. juni 2005 - 21:01 #4
Den kommer ikke hvis du benytter den kode, så må det være fordi du også kører anden kode.
Avatar billede tolderlund Nybegynder
20. juni 2005 - 12:41 #5
EstringListError with message "list index out of bounds (0)"
betyder at index 0 ikke findes i listen, eller med andre ord at listen er tom.
Det er heller ikke så underligt hvis du prøver at forstå hvad der sker.
L := TStringList.Create;  // her creates listen. fint nok.
L.savetofile('Data1.DAT');  // her gemmes listen (en tom liste) på disk.
Underligt. Hvorfor gemme en tom liste?
L[0]:= Edit4.Text ;  // her forsøges at benytte index 0.
Index 0 findes ikke i en tom liste!
Derfor kommer fejlen.
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