ОАиП, II часть, лабораторная работа. "Используя динамические списки, написать......." Эт что, про тип "запись" (RECORD)? Тему еще не читал, не знаю, с какой стороны подступисться. В конспекте Глуховой есть про "динамические цепочки", но как-то заморочено с первого взгляда. Это одно и то же? Все отлично!! Всегда!!
Добавлено (02.06.2009, 22:58) --------------------------------------------- Вопрос про записи в Паскале. Как определить кол-во строк в записи? ЧТо-то туплю.. Если ли какая-нить процедура?
Есть тип "запись". В ней есть несколько типов полей: к примеру - имя фамилия дата и т.д. Ну и по этим признакам вводим данные. И мне нужно подсчитать сколько в записи строк с введенными данными, т.е. сколько, к примеру человеков записано. Может не так изъясняюсь? Все отлично!! Всегда!!
Тип "запись" - я так понимаю record. Там у тебя есть поля (имя, фамилия, дата). Так вот если тебе нужно посчитать сколько челове записано (а человека представляет запсиь, как я понимаю) - это ощначает, что нужно посчитать записи. Я так понимаю они находятся у тебя в динамическом массиве. Если я правильно понимаю, то для подсчета записей введи переменную-счетчик, которую при создании записи ты будешь увеличивать на единицу, а при удалении уменьшать. Она и будет показывать кол-во записей.
Все правильно! но я не создаю запись а уже загружаю готовую инфу из файла, т.е. счетчик вроде не годится... Счетчик - при вводе данных.
Добавлено (03.06.2009, 17:58) --------------------------------------------- Я загрузил инфу из готового файла в тип "запись" и хочу посчитать количество записей в ней, ну, введенных человеков, например. Выбрать для работы, например шестую... или хотябы определить, скольки "человеков"-записей в "record".
mefodiy18, если исходить из того, что ты писал вначале (и как понял Utarefson), то одна запись хранить данные одного человека. Значит количество записей и будет равно количеству человек. С другой стороны одна запись может хранить информацию о нескольких людях. Например, строка фамилия содержит фамилии разделенные запятой. Тогда для определения количества человек необходимо посчитать количество запятых в строке.
Лучше всего приведи здесь объявление записи и как ты читаешь, тогда быстрее ответят.
type base=record fam,imya,otch,propiska:string[20]; fizika,matem,russki:integer; np:integer; end;
у меня одна строка - одна фамилия. далее в программе я ввожу в record данные о каждом человеке, т.е. одна строка - один человек. Ну тут, понятно счетчик работает и я знаю, сколько строк у меня есть. на следующем этапе мне нужно загрузить подобную инфу в record из файла и затем с ней работать. Дык как определить кол-во строк во вновь полученной записи?
mefodiy18, читаешь из файла до тех пор, пока не возникнет ошибка окончания файла (EOF), после чего количество считанных байт делишь на размер записи в байтах и получаешь количество считанных записей. Все вышесказанное является моим личным мнением.
Спасибо! Я выкрутился по-другому: ввел поле "номер". При вводе инфы в файл нумеровал строки. После загрузки из файла прочитал файл до конца и на последней строке прочитал "номер". Может коряво, но работает. Спасибо. Елси еще будут предложения - интересно. Все отлично!! Всегда!!
я вообще не понимаю, почему экземпляры base (твой тип record-a) хранятся в текстовым файле. Это по условию так надо? Гораздо проще работать с типизированным фалом. Насколько я помню паскаль его объявление будет выглядеть так: var f: file of base; p:base При считывании из файла read(f,p); - у тебя сразу будет сконструирована запись в переменную p.
Utarefson, а вроде нигде не было указано, что это текстовый файл =) Тем более integer в тексте хранить - совсем изврат... Все вышесказанное является моим личным мнением.
Спасибо! Я выкрутился по-другому: ввел поле "номер". При вводе инфы в файл нумеровал строки. После загрузки из файла прочитал файл до конца и на последней строке прочитал "номер". Может коряво, но работает. Спасибо. Елси еще будут предложения - интересно.
Wasja, а как ты понимаешь вот это? Что означает, что он на последней строке прочитал номер? Вообщем, сказать, что файл типизированный тоже нельзя. Лучше бы mefodiy18 просто показал здесь задание, чтобы было понятно, что ему нужно.
Добавлено (05.06.2009, 17:53) --------------------------------------------- mefodiy18, действительно брось лучше задание, так понятней по-мойму будет.