TurboPascal Problem

Epimetheus

Cadet 1st Year
Registriert
Dez. 2006
Beiträge
11
Schönen guten Tag... ich habe eine kleine Frage in Sachen Informatik...

Im Informatikunterricht arbeiten wir mit Turbo Pascal (7). Ich hab folgende Aufgabe:

Im Vorfeld solltet ihr wissen das wir eine "Einkaufsliste" programmieren.. folgender Quelltext:

Code:
PROGRAM einkaufsliste; { zeilenpreise je zeile und gesamtsumme letzte spalte}
USES crt;
VAR  anzahl,zaehler1,zaehler2     : integer;
     tausch1                      : string;
     tausch2                      : integer;
     tausch3                      : real;
     artikel                      : ARRAY[1..50] OF string[15];
     stueck                       : ARRAY[1..50] OF integer;
     preis                        : ARRAY[1..50] OF real;
     summe                        : real;
{---------------------------------------------------------}
PROCEDURE eingaben;
BEGIN
  writeln('Artikelzahl eingeben...');
  readln(anzahl);
    FOR zaehler1 := 1 TO anzahl DO
      BEGIN
        writeln('Name des ',zaehler1,'. Artikels eingeben...');
        readln(artikel[zaehler1]);
        writeln('Stckzahl eingeben...');
        readln(stueck[zaehler1]);
        writeln('Preis eingeben...');
        readln(preis[zaehler1]);
      END;
END;
{---------------------------------------------------------}
PROCEDURE sortieren;
BEGIN
  zaehler1 := 0;
  zaehler2 := 0;
  FOR zaehler2 := 1 TO (anzahl - 1) DO
    FOR zaehler1 := (zaehler2 + 1) TO anzahl DO
      IF artikel[zaehler2] > artikel[zaehler1] THEN {wenn artikel2 grӇer als artikel1 dann}
        BEGIN

          tausch1 := artikel[zaehler2];             {tausch1 nimmt 2.artikel auf}
          artikel[zaehler2] := artikel[zaehler1];   {artikel2 durch artikel 1 ersetzt}
          artikel[zaehler1] := tausch1;             {artikel1 erh„lt artikel2 aus tausch1}

          tausch2 := stueck[zaehler2];              {tausch2 nimmt 2.stueckzahl auf}
          stueck[zaehler2] := stueck[zaehler1];     {stueckzahl2 durch stueckzahl 1 ersetzt}
          stueck[zaehler1] := tausch2;              {stueckzahl1 erh„lt stueckzahl2 aus tausch2}

          tausch3 := preis[zaehler2];               {tausch3 nimmt 2.preis auf}
          preis[zaehler2] := preis[zaehler1];       {preis2 durch preis 1 ersetzt}
          preis[zaehler1] := tausch3;               {preis1 erh„lt preis2 aus tausch3}

        END;
END;
{---------------------------------------------------------}
PROCEDURE ausgabe_liste;
BEGIN
  writeln('------------------------------------------------------------------');
  writeln('³ Nr.: ³   Artikel  ³  Stck  ³  Einzelpreis/Euro ³  Gesamtpreis/Euro ³');
  writeln('------------------------------------------------------------------');
   FOR zaehler1:= 1 TO anzahl DO
    BEGIN
      write(zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2);
      writeln((stueck[zaehler1]*preis[zaehler1]):20:2);
    END;
END;
{---------------------------------------------------------}
PROCEDURE ausgabe_summe;
BEGIN
  summe:= 0;
  writeln;
    FOR zaehler1:= 1 TO anzahl DO
      summe := summe + stueck[zaehler1] * preis[zaehler1];
  writeln('Summe: ',summe:57:2,' Euro');
END;
{------------------------HP-------------------------------}
BEGIN
  clrscr;
  eingaben;
  sortieren;
  clrscr;
  ausgabe_liste;
  ausgabe_summe;
  readln
END.

Dies hat eben verschiedene Spielereien. Es rechnet den Preis zusammen und ordnet nach Namen..

Das eigentliche Problem ist, dass ich dies in einer externen Datei speichern soll und es wieder aufrufen lassen soll...
Letzteres bereitet mir Probleme.

Für das Speichern vereinbare ich bei VAR --> datei : text;

die Prozedur sieht so aus:

Code:
PROCEDURE liste_speichern;
BEGIN
  assign (datei,'liste.dat');
  {$I-} rewrite (datei); {$I+}
  IF ioresult = 0 THEN
  FOR zaehler1 := 1 TO anzahl DO
    writeln(datei,zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2,
            (stueck[zaehler1]*preis[zaehler1]):20:2);
    writeln(datei,'Summe: ',summe:57:2,' Euro');
  close (datei);
END;

Wenn ich die entstandene "liste.dat" mit editor öffne, findet sich alles!

Wie muss ich nun die Laden-Prozedur schreiben?

So hab ich es versucht, aber es klappt nicht! -.-
Code:
PROCEDURE liste_laden;
BEGIN
  assign (datei,'liste.dat');
  {$I-} reset (datei); {$I+}
  IF ioresult = 0 THEN
  FOR zaehler1 := 1 TO anzahl DO
    readln(datei,zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2,
            (stueck[zaehler1]*preis[zaehler1]):20:2);
    readln(datei,'Summe: ',summe:57:2,' Euro');
  close (datei);
END;




kann mir wer helfen? bitte bitte! ? :)

lg epi


EDIT: hat sich erledigt. habe eine lösung gefunden.
 
Zuletzt bearbeitet:
Zurück
Oben