AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Laden einer Datei (ReadLn)

Ein Thema von Kasch · begonnen am 18. Jun 2006 · letzter Beitrag vom 18. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
Kasch

Registriert seit: 12. Nov 2005
49 Beiträge
 
#11

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:16
du meinst alle "n" rauslöschen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:17
nein abber es auf den Wert 0 setzen, bevor du es benutzt.

Siehe dazu auch schon mehrere Beiträge in diesem Thread ( von mir, Dax, Hawkeye219)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:21
Hallo,

wie meine "Vorredner" schon sagten, die Variable a muss auf 0 gesetzt werden.

Du solltest vielleicht auch einen try/finally-Block einfügen.

so z. B.:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var

    daten: array[1..1000] of string[64];
    a : Integer;
    datei: textfile;

begin
  try
    AssignFile(datei,'d:\string.txt');
    reset(datei);
    a := 0;
    while not eof(datei) do
      begin
        inc (a);
        Readln(datei,daten[a]);
      end;
  finally
    closefile(datei);
  end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Kasch

Registriert seit: 12. Nov 2005
49 Beiträge
 
#14

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:23
hallo,

hatte es vergessen zu schreiben, aber habe es gleich nach dem ersten Hinweis ausprobiert. Fehlermeldung ist nun eine andere, aber der schwere Absturz bleibt...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:27
Funktioniert es mit der Abwandlung?
Delphi-Quellcode:
     inc (a);
      Readln(datei,s);
      daten[a] := s;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:34
Kann es sein, dass deine Textdatei größer ist als dein Array?

Ich hab das mal getestet und dann bekomm ich einen Fehler bei der Bereichsprüfung.

Wenn du mal die angehängte Datei als Test-Datei verwendest, dann wirst du merken, dass es bei Array[1..1000] funktioniert, aber bei Array[1..10] nicht mehr.
Angehängte Dateien
Dateityp: txt string_123.txt (600 Bytes, 3x aufgerufen)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:36
Und wieviel Zeilen sind in der Datei? Bei > 1000 knallt es auch...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#18

Re: Problem mit Laden einer Datei (ReadLn)

  Alt 18. Jun 2006, 17:41
Hallo Kasch,

befolge Markus' ersten Rat und nimm eine TStringList. Die Verwendung des Arrays bringt viele Nachteile mit sich:
  • Was ist, wenn die Länge einzelner Zeilen den Wert 64 überschreitet? In diesem Fall kannst du die Zeilen nicht mehr vollständig verarbeiten, da du nur Platz für 64 Zeichen pro Zeile reserviert hast.
  • Was passiert, wenn die Datei mehr als 1000 Zeilen enthält? Dein Code stellt das nicht fest und schreibt in nicht reservierten Speicher (was übrigens auch den Absturz erklären würde).
  • Wenn die Zeilen der Datei unterschiedlich lang sind, mußt du trotzdem für jede Zeile den Platz für die maximale Zeilenlänge reservieren, da alle Arrayelemente den selben Typ besitzen müssen.
  • Du mußt die Anzahl der Zeilen bereits zur Compile-Zeit kennen, um dein Array zu dimensionieren.
Die Stringliste ist wesentlich flexibler und bietet dir mehr Möglichkeiten als das Array.

Gruß Hawkeye

//Edit: 2. Seite übersehen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz