(* CVT2TXT.PAS -- translate GEOS text files ** Copyright (c) 1995,1996 Jochen Metzinger ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2, or (at your option) ** any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *) PROGRAM cvt2txt; USES global, errors, geos, coding, cvt, texts; VAR chain: ShortInt; PROCEDURE usage; BEGIN WriteLn('CVT2TXT Version 0.3',country,' Convert GEOS text files'); WriteLn('Copyright (c) 1995,1996 Jochen Metzinger '); WriteLn; WriteLn(short_usage); WriteLn; WriteLn(' input GEOS text file'); WriteLn(' output text output file'); WriteLn(' /V verbose'); WriteLn(' /F create output file'); Write(' /G german'); IF default_code = ge_coding THEN Write(' [default]'); WriteLn; Write(' /E english'); IF default_code = uk_coding THEN Write(' [default]'); WriteLn; HALT(1); END; (* usage *) PROCEDURE Init; VAR in_name, out_name: STRING; i, j: INTEGER; par: STRING; verbose, force_file: BOOLEAN; BEGIN short_usage := 'CVT2TXT [/?] input [output] [options]'; in_name := ''; out_name := ''; verbose := FALSE; force_file := FALSE; IF ParamCount = 0 THEN usage; FOR i := 1 TO ParamCount DO BEGIN par := ParamStr(i); IF (par[1] = '/') OR (par[1] = '-') THEN BEGIN IF Length(par) = 1 THEN FATAL('unknown option '+par); FOR j := 2 TO Length(par) DO CASE UpCase(par[j]) OF '?', 'H': usage; 'V': verbose := TRUE; 'F': force_file := TRUE; 'G': SetCoding(ge_coding); 'E': SetCoding(uk_coding); ELSE FATAL('unknown option '+par); END; (* case *) END ELSE IF in_name = '' THEN in_name := AddExt(par, CVT_EXT) ELSE IF out_name = '' THEN out_name := AddExt(par, '.TXT') ELSE FATAL('too many arguments'); END; (* for *) IF in_name = '' THEN usage; IF force_file THEN BEGIN IF out_name <> '' THEN FATAL('too many arguments'); out_name := GetFileName(in_name) + '.TXT'; END; (* if *) cvt_open(in_name); short_usage := ''; open_text(out_name, verbose); END; (* init *) BEGIN Init; FOR chain := 0 TO last_chain DO text_page(chain); close_text; cvt_close; END. (* cvt2txt *)