Добрый день, эксперты. В приложении прога, которая читает вводимые данные и записывает в файл, ну и выводит на экран. Проблема в том, что прога выводит только первую строчку. Немного о проге ведёт список пациентов в таком виде: имя,год рождения, номер мед.карты, номер телефона,номер группы крови; Подскажите, где ошибся. И ещё вопрос, как отсортировать в алф. порядке пациентов с первой группой крови (подскажите идею). Заранее спасибо.
Добрый вечер, Vova! Во-первых, не хватает файла, который ты в программе открываешь для чтения. Во-вторых, попробуй записывать и считывать целиком запись (смотри в приложении). Исходник явно уменьшится в размерах и проще будет искать ошибки.
Приложение: Ответ отправлен: 29.11.2002, 20:07 Отправитель: Ace Отвечает Ayl
Приветствую Вас, Vova! Так а что ты хочешь? У тебя же написан вложенный цикл: ... for m := 1 to j do ... { считывание из файла } for m := 1 to j do ... { вывод } вот и выводится 1 строка... Насчет соритровки - могу предложить 2 варианта: 1. Сортируешь весь список в алфавитном порядке а потом выбираешь из него только с первой группой 2. Сначала выбираешь всех с первой группой а потом сортируешь Ответ отправлен: 29.11.2002, 18:33 Отправитель: Ayl Отвечает X-RayMan
Доброго времени суток, Vova! Ошибка в том, что Ты пытаешься вывести пациента сразу, как только считал. Причем для этого используешь цикл с переменной m, которая используется как счетчик первого цикла. Поэтому на первой-же итерации цикла у Тебя значение переменной становиться равно j и считывание из файла заканчивается. Это можно решить, если цикл вывода на экран перенести вне основного цикла, см. приложение. Посмотри, чем эта процедура отличается от Твоей. Еще я добавил в конце ввода одного пациента readln(f,c); read(f,c); - что-бы перейти на следующую строку файла. Вообще-то такие вещи реализуются гораздо быстрее и проще. Если интересно, пиши на мыло, объясню. По поводу сортировки в алфавитном порядке, тоже - пиши на мыло.
Приложение: Ответ отправлен: 29.11.2002, 18:55 Отправитель: X-RayMan
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.