home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM ADDTEXT;
- {
- Paul Schubert, Rottweiler Str. 8, 6000 Frankfurt 1, 069 / 231145
- }
-
- CONST CR : BYTE = 13;
- LF : BYTE = 10;
-
-
- VAR I,NBL,NBB : WORD;
- L : LONGINT;
- B,B1 : BYTE;
- F1 : FILE OF BYTE;
- F2 : TEXT;
- NAM1,NAM2,LIN : STRING;
-
-
- PROCEDURE ERROR(NR:BYTE);
- BEGIN
- CASE NR OF
- 1 : WRITELN('***** File ',NAM1,' nicht gefunden *****');
- 2 : WRITELN('***** File ',NAM2,' nicht gefunden *****');
- 3 : WRITELN('***** File ',NAM1,' ist kein EXE- File *****');
- 4 : WRITELN('***** Lesefehler File ',NAM1,' *****');
- 5 : WRITELN('***** Lesefehler File ',NAM2,' *****');
- 6 : WRITELN('***** Schreibfehler File ',NAM1,' *****');
- END; { CASE NR OF }
- HALT(1);
- END; { ERROR }
-
-
- BEGIN
- IF PARAMCOUNT < 2 THEN BEGIN
- WRITELN;
- WRITELN(' ADDTEXT FILE1.EXE FILE2 hängt das Textfile FILE2 an das EXE- File');
- WRITELN(' FILE1 an. .EXE muß nicht angegeben werden,');
- HALT;
- END;
-
- NAM1 := PARAMSTR(1);
- IF POS('.',NAM1) = 0 THEN NAM1 := NAM1 + '.EXE';
- NAM2 := PARAMSTR(2);
- WRITELN(' Anhängen des Textfiles ',NAM2,' an das File ',NAM1);
-
- {$I-}
- ASSIGN(F1,NAM1);
- RESET(F1);
- IF IORESULT <> 0 THEN ERROR(1);
- ASSIGN(F2,NAM2);
- RESET(F2);
- IF IORESULT <> 0 THEN ERROR(2);
-
- READ(F1,B,B1); { EXE - ID }
- IF IORESULT <> 0 THEN ERROR(4);
- IF (B <> $4D) OR (B1 <> $5A) THEN ERROR(3);
- READ(F1,B,B1); { BYTES IM LETZTEN BLOCK }
- IF IORESULT <> 0 THEN ERROR(4);
- NBL := B + (B1 SHL 8);
- READ(F1,B,B1); { 512- BYTE- BLOCKS }
- IF IORESULT <> 0 THEN ERROR(4);
- NBB := B + (B1 SHL 8);
- L := NBB; L := L * 512;
- L := L - (512 - NBL);
- WRITELN(' EXE- File- Größe = ',L);
- SEEK(F1,L);
-
- WHILE NOT EOF(F2) DO BEGIN
- READLN(F2,LIN);
- IF IORESULT <> 0 THEN ERROR(5);
- FOR I := 1 TO LENGTH(LIN) DO WRITE(F1,BYTE(LIN[I]));
- WRITE(F1,CR,LF);
- IF IORESULT <> 0 THEN ERROR(6);
- END; { WHILE }
-
- CLOSE(F2);
- CLOSE(F1);
- END.
-
-