|
unit wwfmodul;
interface
uses crt;
var f: text;
err,c: integer;
ch,s1: char;
b: byte;
str:string;
i,j,n: integer;
Buf : Array [1..4095] Of Char;
Procedure DelChar;
Procedure InputChar;
Procedure OpenFile;
Procedure CloseFile;
implementation
Procedure OpenFile;
begin
repeat
Write('Введите путь к файлу: ');
Readln(str);
Assign(F, str);
{$I-}
Reset(f);
err:=IOResult;
if err<>0 then begin
writeln('Файл '+str+' не существует!');
readkey;
end;
{$I+}
until (err=0) and (length(str)>0);
end;
Procedure CloseFile;
begin
Close(f);
end;
Procedure InputChar;
label m1,m2,m3;
begin
Write('Введите позицию указателя:');
Readln(i);
Write('Введите символ:');
Readln(s1);
Reset(f);
While not Eof(f) do begin
inc(n); {Считаем число символов в файле}
Read(f,Buf[n]); {Сохраняем все символы в массив}
end;
if i > n then goto m1; {если вставляемый символ за границей файла переход на м1}
for c:= 0 to n-i do {вставка символа в массив}
Buf[n-c+1]:= Buf[n-c];
Buf[i]:=s1;
goto m2;
m1:
Append(f); {запись в конец файла}
Write(f,s1);
goto m3;
m2:
Rewrite(f); {запись со вставленным символом}
for c:= 1 to n do
Write(f,Buf[c]);
m3:
n:=0;
end;
Procedure DelChar;
label m4;
begin
Write('Введите позицию указателя:');
Readln(i);
Reset(f);
While not Eof(f) do begin
inc(n); {Считаем число символов в файле}
Read(f,Buf[n]); {Сохраняем все символы в массив}
end;
if i > n then goto m4; {если указатель за границей файла, то выход}
for c:= i to n-1 do {иначе изменение массива}
Buf[c]:=Buf[c+1];
Rewrite(f);
for c:= 1 to n-1 do {и запись его без последнего символа}
Write(f,Buf[c]);
m4:
n:=0;
end;
end.
|
|