Помощь - Поиск - Пользователи - Календарь
Полная версия: Компонентный файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Анна
Создать компонентный файл, компонентами которого являются символы. Поместить все компоненты в новый файл, записав их в обратном порядке. В качестве результата вывести имена файлов и кол-во компонент в них

В общем вот программа, но, к примеру, если я ввожу №%* он выводит *№%, нужно *%№

uses crt;
const
N=3;
var
s,s1: string;
f1, f : text;
b: char;
i : integer;

begin
clrscr;
writeln ('Введите имя исх. файла: '); readln (s);
assign(f,s);
rewrite(f);
writeln ('Введите имя рез. файла: '); readln (s1);
assign (f1, s1);
rewrite(f1);

writeln ('Введите символы: ');

for i:=1 to N do begin
readln(b);
write (f,B); end;



reset(f);
while not eof (f) do begin
for i:=length(s) downto 1 do write (f1,b);
read (f, B);
end;



writeln ('Имя исх. файла: ',s);
writeln ('Имя рез. файла: ',s1);
writeln;
writeln ('Вcе компоненты успешно переписаны');
write ('Клавиша для выхода ...');
readln;
close(f);
close(f1);
end.
klem4
компонентный файл - скорее всего имеется типизированный - file of char;

доступ к любой позиции такого файла можно получить с помощью seek, если научишься им пользоваться, сможешь выводить инфу из файла как захочешь как им пользоваться прочитай в FAQ : Файлы

В общем вот, не мучайся ...

uses crt;
var
f : file of char;
ch : char;
i,size : word;
begin

clrscr;

assign(f,'c:\f.chr');

rewrite(f);

repeat
ch := readkey;
if ch <> #27 then begin
write(f, ch);
write(ch);
writeln;
end;
until ch=#27;

close(f);
reset(f);

size := FileSize(f)-1;

writeln;

for i := size downto 0 do begin
seek(f,i);
read(f,ch);
writeln(ch);
end;


close(f);

readln
end.
Анна
Вот, переделала под задачу:

uses crt;
const
N=5;
var
f,f1 : file of char;
b: char;
i,size : word;

begin
clrscr;

assign(f,'c:\f.chr'); rewrite(f);
assign(f1,'c:\f1.chr');rewrite(f1);

writeln ('Enter: ');

for i:=1 to N do begin
readln(b);
write (f,B); end;

reset(f);
size := FileSize(f)-1;

for i := size downto 0 do begin
seek(f,i);
read(f,B);
write(f1,B);
end;
writeln ('Имя исх. файла: ','c:\f.chr');
writeln ('Имя рез. файла: ','c:\f1.chr');
writeln ('В каждом файле по ',N,' компонент');
close(f);
close(f1);
readln;
end.
klem4
Если уж ты знаешь сколько компонентов у тебя будет в файле, то переменная size тебе не нужна ...
FileSize(f) - возвращает количество компонентов в файле f, нумерация от 0 до filesize(f)-1.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.