From news Fri Aug 19 09:55:58 1994
From: Gorechko <gnom@lreri.lviv.ua>
Subject: Кто имеет другие решения ? (см.письмо)
Date: 18 Aug 1994 12:07:32 +0300
Organization: Radio Engineering Research Institute
Status: RO
Самовосстанавливающиеся программы.
У кого есть другие решения ?
г.Львов, (0322) 64-89-51, Олийнык В.Б.,
E-Mail: gnom@lreri.lviv.ua
{> Cut here. FileName= FENIX.PAS }
Program Fenix;
{
Самовосстанавливающаяся программа.
Turbo Pascal 6.0 Version 23.06.93
(0322) 64-89-51 Олийнык В.Б. г.Львов
}
Const
N = 63;
Type
SA = array[1..N] of String[80];
Const
S : SA = (
'Program Fenix;',
'{',
' Самовосстанавливающаяся программа.',
' Turbo Pascal 6.0 Version 23.06.93',
' (0322) 64-89-51 Олийнык В.Б. г.Львов',
'}',
'Const',
' N = 63;',
'Type',
' SA = array[1..N] of String[80];',
'Const',
' S : SA = (',
'',
'Procedure WriteFenix;',
'Var',
' I : Integer;',
' F : Text;',
' Name : String;',
'',
'Procedure OutLn(S: String);',
'Var',
' I : Integer;',
'Begin',
' I := Pos(#96,S);',
' While I <> 0',
' do begin',
' Delete(S,I,1);',
' Insert(#39,S,I);',
' I := Pos(#96,S);',
' end;',
' WriteLn(F,S);',
'End;',
'',
'Begin',
' Name := ParamStr(0);',
' I := Pos(`.`,Name);',
' Delete(Name,I,255);',
' Name := Concat(Name,`.PAS`);',
' Assign(F,Name);',
' ReWrite(F);',
' for I := 1 to 12',
' do WriteLn(F,S[I]);',
' for I := 1 to N - 1',
' do WriteLn(F,` ```,S[I],```,`);',
' WriteLn(F,` ```,S[N],````);',
' WriteLn(F,` );`);',
' for I := 13 to N',
' do OutLn(S[I]);',
' Close(F);',
' Halt(0);',
'End;',
'',
'Var',
' I : Integer;',
'Begin',
' WriteLn(`Самовосстанавливающаяся программа.`);',
' WriteLn(`Turbo Pascal 6.0 Version 23.06.93`);',
' WriteLn(`(0322) 64-89-51 Олийнык В.Б. г.Львов`);',
' WriteLn;',
' for I := 1 to ParamCount',
' do if ParamStr(I) = `fenix` then WriteFenix;',
' WriteLn(`Запуск: `,ParamStr(0),` fenix`);',
'End.'
);
Procedure WriteFenix;
Var
I : Integer;
F : Text;
|