|
|
a2b.PAS |
|
{* BTOA в двоичный файл *}Unit A2B;Interface Implementation Begin writeln('Преобразует аттачмент из текста письма в формате BTOA в двоичный файл '); End. Program a2b; Uses a2b.pas; {* Эту строку можно удалить *} { Автор: George C. [CoGeN@makro.ryazan.su] { Прог преобразует из текста письма в формате BTOA в двоичный файл.} {$R-, S-, F-} { Хоть чуточку побыстрее } Var {* Объявление переменных *} S : String; sum : longint; f : text; fo : text; cnt : byte; i : byte; c : byte; j : byte; Begin Writeln; {* Пустая строка *} If ParamCount 2 Then Begin Writeln('Prog For letter - BTOA - TEXT - > BIN conversion'); Writeln('Use: a2b in_text.ext out_bin.ext'); Writeln('Good luck! CoGeN''95'); Halt End; cnt := 0; Writeln('Start'); Assign(f, ParamStr(1)); {* Привязка переменной f к файлу ParamStr(1 *} Reset(f); {* Чтение из файла через переменную f *} Assign(fo, ParamStr(2)); {* Привязка переменной fo к файлу ParamStr(2 *} Rewrite(fo); {* Подготовка переменной fo для записи в файл *} While Not EOF(f) Do {* Если в файле ещё есть данные, то продолжаем *} Begin Readln(f, S); If S[1] = 'x' { управл.строка } Then Writeln(S) Else { просто печатаем ее } Begin For i := 1 To Length(S) Do {* Увеличиваем i от 1 до Length(S) с шагом 1 *} Begin c := ord(S[i]) - ord('!'); If c = 89 Then Write(fo,#0#0#0#0) { z=00000000h } Else Case cnt Of 0: Begin sum := c; inc(cnt) {* Прибавим к cnt единицу *} End; 4: Begin sum := sum * longint(85) + c; cnt := 0; For j := 3 Downto 0 Do Write(fo, chr($FF And (sum Shr (j Shl 3)))); { может проще простым повтором или вычитанием ?} End; Else Begin sum := sum * longint(85) + c; inc(cnt) {* cnt++ *} End; End; End; End; End; Close(fo); {* Закрыть файл fo *} Close(f); {* Закрыть файл f *} End.... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|