![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Михаил |
![]() ![]()
Сообщение
#1
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Это опять я беспокою вас со своими БД. Не подскажете как сделать проверку на наличие файла в этом случае:
Procedure ReadBD(var DBB:aREC); И как сделать так чтобы данные заносились до не определённого уровня, пока пользователь не нажмёт какую-нибудь клавишу? Procedure EnterBD(var DBB:aRec);
|
|||
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Михаил |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
А как применить это? А то не могу сообразить совсем
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Procedure ReadBD(var DBB:aREC); Цитата И как сделать так чтобы данные заносились до не определённого уровня, пока пользователь не нажмёт какую-нибудь клавишу? А вот это, извини, не получится... Какой размер массива ты задал? А если пользователь захочет внести больше? Ошибка будет... |
Михаил |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
я имею ввиду макс. количество записей пусть будет 1000. но сделать это так, чтобы пользователь мог ввести 1 запись и выйти при назжатии, допустим, Esc.
|
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
ну вот такое изврощение можешь сделать ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Михаил |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
volvo, что-то не катит. ошибку 113 выдаёт. точней сначала, почему нет <;> после слова end (после которого следует else), а после 113 на строчке else
|
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ты бы код привел, у нас штатный телепат в отпуске до 30-го ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Пишешь такую функцию (которая читает строку максимальной длины max_len, но при нажатии Esc сразу же возвращает пустую строку):
uses crt; (взято отсюда: FAQ: Строки, и доработано под конкретную задачу...) и немного корректируешь EnterBD: Procedure EnterBD(var DBB:aRec); и попробуй во время набора имени нажать Escape ![]() |
Михаил |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
.......смотреть выше
Else Writeln('файл не найден'); ------ error in statement 113 |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Михаил, я не давал полный код для проверки файла... Полная процедура выглядит так:
Procedure ReadBD(var DBB:aREC); |
Михаил |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Всё работает. Огромное спасибо!
![]() Только вот блок-схему осталось сделать. Делал раньше на элементарные программы, а на такую как делать не представляю ![]() |
Михаил |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
А нет. Есть всё же одна ошибка. Когда введёшь определённое кол-во данных и нажмёшь Esc, то после этого не сохр. в файл. Ошибка 202. И кроме того, когда набираешь телефон и жмёшь esc, то всё работает нормально, а с именем выходит в меню
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата Когда введёшь определённое кол-во данных и нажмёшь Esc, то после этого не сохр. в файл. Ошибка 202. Ну вот объясни мне, как сохранение в файл связано с Error 202 (переполнение стека) ? Я например этого не понимаю...Цитата И кроме того, когда набираешь телефон и жмёшь esc, то всё работает нормально, а с именем выходит в меню А что ты считаешь "нормально"? Оно как раз и должно в меню выходить... Ты ж прервал процесс ввода, что теперь прикажешь программе делать? ![]() |
Михаил |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Вообще не могу понять при чём тут ошибка 202. Выложил прогу. Взгляни если не лень..
я просто не знаю к чему могут предраться преподы, но думаю из-за таких мелочей точно баллы понизят Прикрепленные файлы ![]() |
Altair |
![]()
Сообщение
#16
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Вообще не могу понять при чём тут ошибка 202 Я компилил на FPC все ок, все работает.. но Код MaxRec=200; Type REC=record Name:string; Number:string[8]; end; aRec=array[1..MaxRec] of rec; это 200*(256+8) = 52800 хы.. напиши в начале проги {$M 65500, 0,0} и проверь. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
тепреь к тому , к чму можно придраться..
Procedure PrintBD(DBB:aRec); ![]() зачем ты все записи выводишь ? ведь у меня база может состоять из 3 записей а ты все 200 выведешь.. поставь условеи: for i:=1 to MaxRec do if DBB[i].NAME<>'' then те же условия при записи в файл.. не надо пустое выводить никуда.. при чтении из файла тогда меняем If ioresult = 0 Then begin на что то типа
идею понял ? читаем файл пока он не кончиться... а то ты так есил будешь читать то файл может раньше закончиться и получишь ты ошибку чтения... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 7:05 |