home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 02 / praxis / rnddat.pas < prev    next >
Pascal/Delphi Source File  |  1990-01-03  |  2KB  |  81 lines

  1. (* ------------------------------------------------------ *)
  2. (*                   RNDDAT.PAS                           *)
  3. (*       (c) 1990  Hans-Dieter Schmidt & TOOLBOX          *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM RandomDatei(input, output);
  6.  
  7. (* Kann nach reset ( datei ) ein write-Zugriff erfolgen ? *)
  8.  
  9. TYPE
  10.   complex = RECORD
  11.                x, y : REAL;
  12.             END;
  13. VAR
  14.   datei   : TEXT;
  15.   filevar : FILE OF complex;
  16.   c       : complex;
  17.  
  18.   PROCEDURE konvert_daten;
  19.   BEGIN
  20.     Assign(datei, 'KOMPLEX.TXT');
  21.     Reset(datei);
  22.     Assign(filevar, 'KOMPLEX.DAT');
  23.     Rewrite(filevar);
  24.     WHILE NOT EOF(datei) DO BEGIN
  25.       ReadLn(datei, c.x, c.y);
  26.       Write(filevar, c);
  27.     END;
  28.     Close(datei);
  29.     Close(filevar);
  30.   END;
  31.  
  32.   PROCEDURE bearbeite_daten;
  33.   VAR
  34.     nr : INTEGER;
  35.   BEGIN
  36.     Assign(filevar, 'KOMPLEX.DAT');
  37.     Reset(filevar);
  38.     Write('Welcher Datensatz soll bearbeitet werden ? ',
  39.           '( 0<=i<=');
  40.     Write(Pred(FileSize(filevar)):2,') ' );
  41.     ReadLn(nr);
  42.     Seek(filevar, nr);
  43.     read(filevar, c);
  44.     WriteLn;
  45.     WriteLn('Alter Wert : ', c.x:5:2, ' + ', c.y:5:2, '*i');
  46.     Write('Neuer Wert  x y ? ');
  47.     ReadLn(c.x, c.y);
  48.     Seek(filevar, Pred(FilePos(filevar)));
  49.     Write(filevar, c);
  50.     WriteLn;
  51.     Write('Datei ergänzen  x y ! ');
  52.     ReadLn(c.x, c.y);
  53.     Seek(filevar, FileSize(filevar));
  54.     Write(filevar, c);
  55.     Close(filevar);
  56.   END;
  57.  
  58.   PROCEDURE show_daten;
  59.   VAR
  60.     i : INTEGER;
  61.   BEGIN
  62.     WriteLn;
  63.     Assign(filevar, 'KOMPLEX.DAT');
  64.     Reset(filevar);
  65.     FOR i := 1 TO FileSize(filevar) DO BEGIN
  66.       Read(filevar, c);
  67.       WriteLn(c.x:10:2, ' + ', c.y:5:2, ' *i' );
  68.     END;
  69.     Close(filevar);
  70.     WriteLn;
  71.   END;
  72.  
  73. BEGIN
  74.   konvert_daten;
  75.   show_daten;
  76.   bearbeite_daten;
  77.   show_daten;
  78. END.
  79. (* ------------------------------------------------------ *)
  80. (*                 Ende von RNDDAT.PAS                    *)
  81.