Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи по файлам
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-Денис-
Помогите решить три несложных задачи.
1. Переписать компоненты символьного файла f в файл g,удалив при этом символы,встречающиеся в
файле всего один раз.
2.В файле содержатся сведения об игрушках:название игрушки и цена.Напечатать сведения об игр
ушках,цена которых выше средней.
3.Дан текстовый файл f.Поменять местами самую короткую и самую длинную строки текста(при услов
ии,что он единственный),результат занести в файл g.
volvo
Что именно не получается? Поиск тоже ничего не выдает? Или просто ЛЕНЬ им воспользоваться, и будем ждать, когда все выложат "на блюдечке"?
Гость
Цитата(volvo @ 4.01.2006 19:44) *

Что именно не получается? Поиск тоже ничего не выдает? Или просто ЛЕНЬ им воспользоваться, и будем ждать, когда все выложат "на блюдечке"?



Я ничего подобного в поиске не нашел.
-Денис-
Я в поск заходил.Я вроде умею им пользоваться, но не нашел ничего что могло бы мне пригодиться.
Помогите с этими задачами или подскажите в чем-нибудь.Пожалуйста!!!!!
klem4
Цитата
но не нашел ничего что могло бы мне пригодиться.


FAQ : Как работать с файлами ?
FAQ : Как работать с символьными данными?

Выкладывй что получится исправвим ошибки
-Денис-
В файлах я не далек.Объясни пожалуйста как удалить символы,встречающиеся в
файле всего один раз.Т.е те символы которые повторяются один и более раз-не удалять.
-Денис-
Я непонимаю как узнать что в файле символ встречается только один раз, а затем удалить его.
ПОМОГИТЕ.
hardcase
Если символ - это обычный char, то можно поступить так: копировать файло в 2 прохода.

За первый проход собраем инфу о том, что у нас в файле имеется:
- считаем количество вхождений каждого символа


var Chars: array[Char] of longint;

//считаем кол-во вхождений
while not eof(F) do begin
Read(F,Cur);
inc( Chars[Cur] );
end;



за второй проход сливаем все символы, которые у нас имеют количество вхождений, отличое от единицы, в наше результирующее файло.


//пишем результат
Reset(F);
while not eof(F) do begin
Read(F,Cur);
if Chars[Cur] > 1 then Write(ResultFile,Cur);
end;

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.