home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 15 / graphen / reg / eindat.pas next >
Encoding:
Pascal/Delphi Source File  |  1989-04-22  |  2.9 KB  |  90 lines

  1. PROCEDURE DateiEingabe (VAR Anzahl : Index;
  2.                         VAR x,y    : Messwerte;
  3.                         VAR Erfolg : BOOLEAN );
  4.  
  5. PROCEDURE Verwandle ( s : Zeile; VAR x,y : Real;
  6.                                  VAR Erfolg : BOOLEAN );
  7. { Verwandelt den uebergebenen String s in die beiden Zahlenwerte x und y }
  8.  
  9. PROCEDURE Fehler (k:Word);
  10. BEGIN
  11.     Erfolg := FALSE;
  12.     WriteLn;
  13.     WriteLn ('Datei - Fehler, Wert falsch !');
  14.     CASE k OF
  15.          1 : WriteLn ('Kein Trennzeichen');
  16.          2 : WriteLn ('kein y - Wert');
  17.          3 : WriteLn ('x - Wert keine Zahl');
  18.          4 : WriteLn ('y - Wert keine Zahl');
  19.     END;
  20.     WriteLn ('Zur Fortsetzung Enter - Taste pressen.');
  21.     ReadLn;
  22. END;  { Fehler }
  23.  
  24. VAR p,fx,fy : integer ;
  25.     xs,ys   : Zeile   ;
  26.  
  27. BEGIN   { Verwandle }
  28.     Erfolg := TRUE;                           { auf Verdacht                }
  29.     WHILE s[1] = ' ' DO s := Copy (s,2,255);  { Leerzeichen ueberlesen      }
  30.  
  31.     p := pos (' ',s);                         { Trennzeichen suchen         }
  32.     IF p = 0 THEN Fehler (1)                  { kein Trennzeichen => Fehler }
  33.     ELSE
  34.     BEGIN
  35.          xs  := Copy (s,1,pred(p))  ;         { x - String vom y - String   }
  36.          ys  := Copy (s,succ(p),255) ;        { trennen                     }
  37.  
  38.          WHILE ys [1] = ' ' DO
  39.                   ys := Copy (ys,2,255);      { Leerzeichen ueberlesen      }
  40.  
  41.          IF ys = '' then Fehler (2)           { kein y - Wert => Fehler     }
  42.          ELSE
  43.          BEGIN
  44.               Val (xs,x,fx);                  { Verwandlung der Strings     }
  45.               Val (ys,y,fy);                  { in Zahlen                   }
  46.               IF fx <> 0 THEN Fehler (3);
  47.                                               { x - Wert konnte nicht kon-  }
  48.                                               {          vertiert werden    }
  49.               IF fy <> 0 THEN Fehler (4);     { dto. y - Wert          }
  50.          END;
  51.     END;
  52. END; { Verwandle }
  53.  
  54. VAR Datei        : Text;
  55.     z,DateiName  : Zeile;
  56.  
  57. BEGIN   { Dateieingabe }
  58.      WriteLn;WriteLn;
  59.      Write ('Bitte geben Sie den DateiNamen ein : ');
  60.      ReadLn (DateiName);
  61.      Assign (Datei,DateiName);
  62.      Erfolg := FALSE;
  63.      {$I-}
  64.           Reset (Datei);
  65.      {$I+}
  66.      IF IOResult <> 0 THEN
  67.      BEGIN
  68.           WriteLn;WriteLn;
  69.           WriteLn  ('Datei existiert nicht ! Eingabe wiederholen.');
  70.           WriteLn ('Zur Fortsetzung Enter - Taste pressen.');
  71.           ReadLn;
  72.           EXIT;
  73.      END;
  74.      Anzahl := 0; Erfolg := TRUE;
  75.      WriteLn;
  76.      WriteLn  ('Ausgabe der eingelesenen Daten');
  77.      WriteLn;
  78.      WriteLn;
  79.  
  80.      WHILE (NOT Eof (Datei)) AND Erfolg DO
  81.      BEGIN
  82.           Anzahl  := Succ (Anzahl);
  83.           ReadLn (Datei,z);
  84.           WriteLn (z);
  85.           Verwandle (z,x[Anzahl],y[Anzahl],Erfolg);
  86.      END;
  87.      Close (Datei);
  88.  
  89. END;
  90.