![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.04.2008
Сообщений: 21
|
![]()
Ситуация такая. Пишу прогу без динамики. Использую списки, которые загоняються в файл методом:
while not eof(f) do writeln('Имя :'); readln(st.Imya); writeln('Номер: '); readln(st.Nomer); write(f,st); Короче говоря основа базы данных. Вопрос следующий, как сделать сортировку по имени??? Спасибо заранее всем за идеи и помощь. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Нужно делать ввод данных в память. Например, хранение списка в массиве. В процессе ввода можно сразу сортировать - вставлять новый элемент в нужное место списка. Только после этого сохранять в файл.
Надеюсь, приведенный код только схема, потому как условие окончания цикла не соответствует условию задачи и нет begin/end; |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 04.04.2007
Сообщений: 131
|
![]()
Была у меня практика, там нужно было такое делать. Если хочеш могу выложить, но меню там на латышском потомучто живу в латвии и учусь в латышской школе
![]() Последний раз редактировалось nikleb; 21.04.2008 в 11:26. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Сортиртировка по имени делается также как любая сортировка, методом сравнения величин элементов. Видимо имена у вас строкового типа, а строки тоже сравниваются и сортируются. Например по алфавиту. У вас видимо есть массив записей, тогда это делается например так:
Код:
Если по имени нужно отсортировать весь массив записей, то пишем: Код:
Потом выводим на экран или в файл уже отсортированную запись. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 21.04.2008
Сообщений: 21
|
![]()
Хмм... у меня была идея так попробовать, но будет это работать, если при вводе данных в файл я не использовал циклы i и j. Или прога всё равно будет брать по одному элементу и сравнивать?
Вечером попробую, просто сейчас в универ ухожу. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.04.2008
Сообщений: 21
|
![]()
В общем ничего не получилось.
Вот мой тип, который рекорд: Код:
Код:
Компилятор выдаёт ошибку на месте где встречаеться st[j].Termin : Error 121: Invalid qualifier. Последний раз редактировалось Isthmus; 22.04.2008 в 22:49. Причина: не правильно написал |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Ну Вы даете. Прежде чем сортировать МАССИВ записей, его не плохо было бы сначала объявить, например
st:array[1..50] of ykazatel; потом наполнить содержимым, типа n:=1; while not eof(f) do Begin readln(f,st[n]); n:=n+1; end; А вот потом, благословлясь, можно этот массив и посортировать слегка. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 19.04.2008
Сообщений: 66
|
![]()
Ну и чехорда...
![]() с тем что надо (только с применением указателей) и с входными параметрами. А дальше сам разгребёшь. Не всё же халява ![]() Ну как?
Нет таких проблем, которых мы не можем себе создать
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.04.2008
Сообщений: 21
|
![]()
2 MusicMan: нет, спасиб. Я лучше без указателей помучаюсь
![]() |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 21.04.2008
Сообщений: 21
|
![]()
Всё равно не пашет. Может есть у кого ещё предложения???
Код:
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск символов в текстовом файле. | Uomo | Общие вопросы Delphi | 8 | 24.10.2007 15:57 |
Поиск чисел в текстовом файле | Homka | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 25.06.2007 19:15 |
Поиск данных в текстовом файле | BizON | Помощь студентам | 1 | 06.06.2007 18:17 |