Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Проблема с процедурой поиска

Автор: m0lex 25.11.2006 20:55

Здраствуйте, у меня есть один вопрос, не могу разобраться с процедурой поиска:
Вообщем ситуация такая: Прога создает фаил, можно в этот фаил добавлять запись, удалять, редактировать, можно просмотреть фаил, есть сортировка, и поиск конкретной записи, проблема с поиском, все вроде проверял, но прога просто напросто вылетает...
з.ы. так же небольшая проблемка с редактированием записи, если будет время может ктонибудь посмотрит... при редактировании записи, старая запись сохраняется на место следущей, а изменненая записывается на место старой? в чем дело не могу понять...
Исходник molex.hotbox.ru/PROG.pas
Если кто поможет могу отблагодарить красивым семизнаком, вида: xyyyx-zz


Автор: мисс_граффити 25.11.2006 21:24

она работает, просто ты этого не видишь.
сделай

case tip of
...
7:begin poisk; readln; end;


по второму вопросу: ты делаешь 2 раза read (один раз в izm, а потом вызываешь zapis - и там опять)

Автор: m0lex 25.11.2006 21:51

Большое спасибо, разобрался...
в первом случае у меня оказывается cтоял clrscr; поэтому я и немог видеть результатов.

Автор: мисс_граффити 25.11.2006 22:50

а обещание насчет номерка выполнять, естественно, никто и не собирался.
в самом деле - зачем?.. уже ведь помогли.

Автор: m0lex 25.11.2006 23:15

Зачем же сразу так думать!)
Номерок ваш, отправил в приват...
большое спасибо за помощь!

Автор: мисс_граффити 25.11.2006 23:36

спасибо smile.gif

Автор: m0lex 27.11.2006 23:36

Возник еще один вопрос, подскажите пожалуста, почему не работает контроль ошибок ввода/вывода? директивы вроде бы везде стоят нормально, но почемуто, конкретно при запросе номера записи и запроса количества записей в фаиле, прога не фильтрует вводимые данные, переменная определена, как integer, а при вводе не численных сисволов прога вылетает, заранее спасибо...

Автор: мисс_граффити 28.11.2006 1:16

выложи прогу...

Автор: m0lex 28.11.2006 2:11

Все таже... molex.hotbox.ru/PROG.PAS

Автор: мисс_граффити 28.11.2006 2:46

ну так она по идее (судя по этому коду) должна ругнуться, а потом вылететь....

if kod<>0 then
begin
writeln('Ошибка, неверно задан формат времени !');
write('Попробуйте еще: ');
end;

она ведь после процедуры все равно будет пробовать обрабатывать инфу.
добавь что-нибудь типа exit'а.

Автор: Archon 28.11.2006 3:56

        if IOresult=0 then
begin {$I-}
write('Введите номер изменяемой записи: ');
{$I+}
readln(n);
if (n>FileSize(trains))or(n=0)then
begin
Этот участок, я так понимаю? А как ты хочешь чтобы оно работало? Если хочешь сам обрабатывать ошибки ввода вывода, то и ставь диррективу на отключение автоматической проверки ({I-}) перед вводом. Если хочешь так же, как и с вводом прочих числовых значений... в чём проблема? В процедурах Nomer и Vremja это уже реализовано.