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

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

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

> Компонентный файл
Анна
сообщение 18.12.2005 12:51
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
klem4
сообщение 18.12.2005 12:54
Сообщение #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 
 К началу страницы 
+ Ответить 
Анна
сообщение 18.12.2005 14:08
Сообщение #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 
 К началу страницы 
+ Ответить 
klem4
сообщение 18.12.2005 17:16
Сообщение #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

 



- Текстовая версия 19.07.2025 17:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"