IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массив Record, сортировка по произвольному полю
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Есть тип рекорд вида:

Type block=Record
Nick,City:string[10];
Score:byte;
Goals:integer;
Surname:string[10]
End;
File1=file of block;
Var X:block; F:file1;


Необходимо сортировать в этом файле записи по введенному полю (Score, Goals итп)
Вопрос: как перевести введенную строку в X.строка ? То бишь чтобы можно было начать поиск по эти значениям?

Сообщение отредактировано: Олег -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






А зачем?

Вот так сортируется массив записей по любому полю:
Сортировка записи с процедурой
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Олег @ 26.03.2007 12:51) *

как перевести введенную строку в X.строка ?

Если я правильно понял, ты хочешь, чтобы когда юзер ввел с клавиатуры, например: "Goals" - программа выполнила сортировку по полю X.Goals. Верно?

Если так, то разочарую тебя. Узноать имя переменной во время исполнения программы невозможно. Ты должен запрограммировать специальный механизм соответствия, если хочешь, чтоб оно было.
Например, можно предусмотреть дополнительные поля в записи, типа так:
Type block=Record
Nick,City:string[10];
Score:byte;
Goals:integer;
Surname:string[10]
NickName,CityName,ScoreName,GoalsName,SurnameName:string[10]
End;

а в начале программы присвоить:
with X do begin
NickName:='Nick';
CityName:='City';
...
end;

и дальше выполнять:
if s=NickName then {сортировка по NickName}
else ...

Но только это громоздкий способ..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 4:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name