|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.02.2012, 18:05 | #1 |
Регистрация: 22.12.2011
Сообщений: 5
|
Все те же текстовые файлы..
Подскажите что не так, а точнее как это исправить.
Задача : создать структуру (запись) информации о студентах (фио, пол, дата рождение, факультет, специальность, средняя оценка), записать в текстовый файл, затем считать из файла и вывести на экран всех студентов женского пола, средняя оценка которых выше введенной с клавиатуры. Некоторые материалы читал но особо сильно не помогло. Код:
Убрав скобки в {writeln(fio,' ',pol);} получаю всегда правильный ответ, независимо от содержания (на экран выводятся все студенты). Эксперимента ради даже один файл на 2 переменные назначил, не помогло. Поставив Watch заметил, что все содержимое строки копируется в переменную fio, почему ? и главное как это исправить ? P.S ранее делал разные типы, пол был char, av: byte и тд, но только поставив все string-ом получил ну хоть какой-то результат. Заранее спасибо за помощь! |
11.02.2012, 19:05 | #2 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
readln - считывание всей строки... или же 255 символов строки... либо делай через read, либо каждое данное для чтение помещай на разных строках... тобишь фио ентрер ДР ентре и т.д.
P.S. в объявлении ещё поставь длинну строковых переменных.... если будешь делать через read...
пишу код не только за печеньки
|
11.02.2012, 19:47 | #3 | |
Регистрация: 22.12.2011
Сообщений: 5
|
Цитата:
Я ж заранее не знаю сколько и где будет символов. Про 1 значение на 1 строку была мысль, не понравилась, но работает. Спортивный интерес был что б красиво все в 1 строчке сделать, что б 1 студент = 1 строка. Мне казалось что чтение значения идет до разделителя (коим вроде как есть пробел), разве не так ? (сведения откуда-то из интернета, уже не помню и откуда) Окончательный код: Код:
Последний раз редактировалось Joyker; 11.02.2012 в 19:54. Причина: подправил по мелочам |
|
11.02.2012, 20:34 | #4 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
впринципе можно и по пробелу намутить... считывать все в одну строку сразу... и затем по символьно проверять на пробелы... и добавлять в нужные переменные...
пишу код не только за печеньки
|
11.02.2012, 20:54 | #5 |
Регистрация: 22.12.2011
Сообщений: 5
|
идея теоретически рабочая, только я понятия не имею как это сделать) даже примерно
|
11.02.2012, 21:03 | #6 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
теоритически?.... да ладно... она рабочая... ).. просто гемору чуток больше...
можно переделать и установив ограничения на кое какие поля... тобишь выставить в записи длинну некоторых стрингов, если используешь тип записи, то записывать можно в типизированный файл, тие самым потом упростить себе путь при считывании... выставив теже ограничения длинны на ввод фамилии и иных текстовых переменных... собственно... если вас это устраивает то можно так и оставить...
пишу код не только за печеньки
|
11.02.2012, 21:17 | #7 |
Регистрация: 22.12.2011
Сообщений: 5
|
Это устраивает, никаких ограничений мне не ставили, лишь бы в файл писало и с него читалось, да с использованием записи.
Когда время появится - вернусь к этому, поколдую, может и получится чего) В любом случае, спасибо за помощь! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Текстовые файлы и Turbo Pascal: Напечатать все слова, которые встречаются в заданной последовательности по одному разу | Katonka | Помощь студентам | 0 | 17.06.2011 01:51 |
Текстовые файлы | Mors13 | Помощь студентам | 1 | 19.05.2011 16:29 |
Текстовые файлы | Evacuator | Помощь студентам | 1 | 19.12.2010 14:56 |