home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------------------------- *)
- (* BROWSE.PAS *)
- (* File-Browser als Demoprogramm für SCROLL-Unit *)
- (* *)
- (* (c) 1988 TOOLBOX & Karsten Gieselmann *)
- (* ------------------------------------------------------------------------- *)
-
- {$R-,S-,I-,V-,B-,N-} (* keine Fehlerprüfung, größtmögliche Geschwindigkeit! *)
-
- PROGRAM Browse;
-
- USES
- Crt, Scroll; (* benötigte Units *)
-
- VAR
- Buffer : ARRAY [1..1000] OF ^STRING; (* Puffer für Textdatei *)
- TextFile : TEXT;
- Lines, Key : WORD;
-
- {$F+} (* wichtig: Ausgaberoutine im FAR-Modell kompilieren! *)
-
- PROCEDURE WriteLine(Col,Row : BYTE; Index : LONGINT);
- (* gibt das k-te Listenelement an der Fensterposition (Col,Row) aus *)
- BEGIN
- GotoXY(Col,Row);
- Write(Buffer[Index]^);
- END;
-
- {$F-}
-
-
- PROCEDURE ReadTextFile(VAR Lines : WORD); (* liest Textdatei in Puffer ein *)
- VAR
- s : STRING[79]; (* automatische Längenbegrenzung auf 79 Zeichen! *)
- BEGIN
- Lines := 0;
- WHILE NOT EOF(TextFile) DO BEGIN
- Inc(Lines);
- FillChar(s[1], 79, #32); (* mit Leerzeichen vorbesetzen... *)
- ReadLn(TextFile, s);
- s[0] := #79; (* ...und auffüllen! *)
- GetMem(Buffer[Lines], Succ(Length(s)));
- Move(s, Buffer[Lines]^, Succ(Length(s))); (* dynamisch abspeichern *)
- END;
- END;
-
- {$I UTILITY.INC} (* Einbinden verschiedener Hilfsroutinen *)
-
- BEGIN
- IF ParamCount <> 0 THEN BEGIN (* Parameter angegeben? *)
- Assign(TextFile, ParamStr(1));
- Reset(TextFile);
- IF IOResult = 0 THEN BEGIN (* Datei gefunden? *)
- CursorOff;
- ReadTextFile(Lines);
- SetupScrollArea(Lines, @WriteLine, NIL); (* ganzer Bildschirm! *)
- Key := $4700; (* Home: Dateianfang zeigen *)
- WHILE NOT Aborted DO BEGIN
- ScrollResponse(Key); (* Datei durchblättern *)
- Key := GetKey;
- END;
- TextMode(LastMode);
- END ELSE WriteLn('Datei nicht gefunden!')
- END ELSE WriteLn('Kein Parameter angegeben!');
- END.
- (* ------------------------------------------------------------------------- *)
- (* Ende von BROWSE.PAS *)