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

мисс_граффити
она работает, просто ты этого не видишь.
сделай
case tip of
...
7:begin poisk; readln; end;


по второму вопросу: ты делаешь 2 раза read (один раз в izm, а потом вызываешь zapis - и там опять)
m0lex
Большое спасибо, разобрался...
в первом случае у меня оказывается cтоял clrscr; поэтому я и немог видеть результатов.
мисс_граффити
а обещание насчет номерка выполнять, естественно, никто и не собирался.
в самом деле - зачем?.. уже ведь помогли.
m0lex
Зачем же сразу так думать!)
Номерок ваш, отправил в приват...
большое спасибо за помощь!
мисс_граффити
спасибо smile.gif
m0lex
Возник еще один вопрос, подскажите пожалуста, почему не работает контроль ошибок ввода/вывода? директивы вроде бы везде стоят нормально, но почемуто, конкретно при запросе номера записи и запроса количества записей в фаиле, прога не фильтрует вводимые данные, переменная определена, как integer, а при вводе не численных сисволов прога вылетает, заранее спасибо...
мисс_граффити
выложи прогу...
m0lex
Все таже... molex.hotbox.ru/PROG.PAS
мисс_граффити
ну так она по идее (судя по этому коду) должна ругнуться, а потом вылететь....
if kod<>0 then
begin
writeln('Ошибка, неверно задан формат времени !');
write('Попробуйте еще: ');
end;

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