Здраствуйте, у меня есть один вопрос, не могу разобраться с процедурой поиска: Вообщем ситуация такая: Прога создает фаил, можно в этот фаил добавлять запись, удалять, редактировать, можно просмотреть фаил, есть сортировка, и поиск конкретной записи, проблема с поиском, все вроде проверял, но прога просто напросто вылетает... з.ы. так же небольшая проблемка с редактированием записи, если будет время может ктонибудь посмотрит... при редактировании записи, старая запись сохраняется на место следущей, а изменненая записывается на место старой? в чем дело не могу понять... Исходник 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
спасибо
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 это уже реализовано.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.