IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Компонентный файл
сообщение
Сообщение #1


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


Создать компонентный файл, компонентами которого являются символы. Поместить все компоненты в новый файл, записав их в обратном порядке. В качестве результата вывести имена файлов и кол-во компонент в них

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

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


компонентный файл - скорее всего имеется типизированный - 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.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


Вот, переделала под задачу:

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Если уж ты знаешь сколько компонентов у тебя будет в файле, то переменная size тебе не нужна ...
FileSize(f) - возвращает количество компонентов в файле f, нумерация от 0 до filesize(f)-1.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 12.05.2024 15:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name