Announcement

Collapse
No announcement yet.

Mit Read eine Datei auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit Read eine Datei auslesen

    Hallo

    Ich habe eine Datei mit Zahlen als Inhalt, diese Datei soll beim Öffnen des Hauptformulars also beim Start des Programms (OnCreate) ausgelesen werden.

    Ich habe es wie auf die gleiche Art und Weise wie beim Beschreiben der Datei versucht:

    //Schreiben der Daten in die Datei, funktioniert
    for i:=0 to high(code) do;
    Write(datei, code[i]);

    //Lesen der Daten aus der Datei, funktioniert nicht
    while eof(datei) do
    begin
    i:=i+1;
    Read(datei, code[i]);
    end;

    Warum kann man so die Daten nicht einlesen?
    Und wie muss man diesen Code verändern das es funktioniert?

    Gruß Tobias

  • #2
    //Lesen der Daten aus der Datei
    FileMode:= fmOpenRead; // Zugriffsmodus für typisierte und nicht typisierte Dateien an, die mit Reset geöffnet werden
    Reset(datei); // Die Prozedur öffnet eine vorhandene Datei.
    i:=0; // Initialisierung von i
    while not eof(datei) do // not !!!
    begin
    Read(datei, code[i]); // bei 0 anfangen, oder?
    inc(i); // schneller als i:=i+1;
    end;
    CloseFile(F);
    FileMode:= fmOpenReadWrite; // zurück auf den Standard setzen

    In der Hilfe auch bei IOResult nachschauen

    Comment


    • #3
      Hallo Dietmar

      Danke, das habe ich getestet, funktioniert auch, nur bekomme ich des öfteren eine Fehlöermeldung bei Zugriff auf eine bestimmte Adresse und das der Arbeitsspeicher nicht ausreichen würde, woran kann das nun wieder lieg3en ?

      Gruß Tobia

      Comment


      • #4
        Was ist code[i]? Ich denke du schreibst in einen nicht angeforderten Speicherbereich

        Comment


        • #5
          Was ist code? Falls vom Typ String, dann muß die Schleife bei 1 anfangen.
          Wo machst Du Dein i:=i+1

          Comment


          • #6
            Hallo Dietmar

            code ist ein Arrav vom Typ integer.
            i wird wie oben beschrieben hochgezählt, schauh dir mal mein Anfangskommentar an da hab ich ein Teil des Programms reingeschrieben

            Comment


            • #7
              Wo initialisiert Du i für den Einsatz in der while-Schleife?
              Dein i:= i + 1 kommt eine Zeile zu früh, oder

              Comment

              Working...
              X