home *** CD-ROM | disk | FTP | other *** search
File List | 1988-12-13 | 2.7 KB | 82 lines |
-
- {------------------------------------------------------------
- Pascal Colleg " Dateien" Beispielprogramm
- Numerieren aller nichtleeren Zeilen einer Programmdatei
- Version Turbo Pascal 3.0
- (C) 1989 TOOLBOX & W.J.Weber
- ------------------------------------------------------------}
-
-
- PROGRAM ZeilenNumerieren(Input,Output); {Kopfzeile}
-
- VAR Quelle,Ziel: Text; {Globale Variable vom Typ Textdatei}
-
- {-----------------------------------------------------------}
-
- PROCEDURE WaehleDatei;
- VAR Dateiname : String[12]; { lokale }
- Fehlercode: Integer; { Variable }
-
- BEGIN { Anweisungsteil der Prozedur }
-
- (*$I-*); { Verhindert Laufzeitfehler }
- { falls Datei nicht existent}
- REPEAT
- Write('Welche Datei soll bearbeitet werden? Name: ');
- ReadLn(Dateiname);
- IF Pos('.PAS',Dateiname)=0 THEN {Endung .PAS fehlt}
- Dateiname:=Concat(Dateiname,'.PAS'); { .PAS anfügen}
- Assign(Quelle,Dateiname);
- Reset(Quelle);
- Fehlercode:=IOResult;
- IF Fehlercode>0 THEN
- Writeln('Datei nicht gefunden. Neue Eingabe machen!')
- UNTIL Fehlercode=0;
-
- (*$I+*);
-
- WriteLn('Die Zeilen von ',Dateiname,' werden numeriert.');
-
- END; { Ende der Prozedurdefinition WaehleDatei }
-
- { Die Datei Quelle bleibt geöffnet und wird von der folgenden
- Prozedur weiterbenutzt. }
-
- {-----------------------------------------------------------}
-
- PROCEDURE NumeriereDatei;
- VAR Zeile: String[255]; { lokale }
- N : 1..MaxInt; { Variable }
-
- BEGIN { Anweisungsteil der Prozedur }
- N:=0;
- Assign(Ziel,'LISTING.TXT');
- Rewrite(Ziel);
- WHILE NOT EOF(Quelle) DO
- BEGIN
- ReadLn(Quelle,Zeile);
- IF Length(Zeile)>0 THEN
- BEGIN
- N:=succ(N);
- Writeln(Ziel,'(*',N:3,' *) ',Zeile);
- Write('.') {Schreibt für jede bearb. Textzeile}
- END {einen Punkt auf Bildschirm }
- ELSE WriteLn(Ziel) {Übertrage Leerzeile}
- END; { WHILE-Schleife }
- Close(Quelle);
- Close(Ziel);
- WriteLn;
- WriteLn('Die neue Datei LISTING.TXT enthält ',N,' Zeilen.')
- END; { Ende der Prozedurdefinition NumeriereDatei }
-
- {-----------------------------------------------------------}
-
- BEGIN { Anweisungsteil des Hauptprogramms }
- ClrScr;
- WriteLn('Numerieren der Zeilen einer Pascal-Programmdatei');
- WriteLn('------------------------------------------------');
- WriteLn;
- WaehleDatei;
- NumeriereDatei
- END.