Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Получение индекса по строке в массиве.   Найти похожие ветки 

 
мозг_умер   (2004-06-21 21:20) [0]

Здравствуйте, Мастера. Есть такая конструкция:


type
 TSomeType = (stOne, stTwo, stThree, stFour);

const
 SomeTypeStrings: array[TSomeType] of string = ("One", "Two",
   "Three", "Four");


Как по строковому значению из SomeTypeStrings получить индекс в TSomeType. Например, "Three" должен возвратить 2. Заранее благодарен.

P.S: Возможно есть некие неточности в терминологии - не судите строго, у меня проблемы с запоминанием терминов.


 
Johnmen ©   (2004-06-21 21:24) [1]

Перебор. А ты что думал ?
:)


 
Igorek ©   (2004-06-21 21:52) [2]

TypInfo.GetEnumName - тогда порядок в наборе и массиве может не совпадать


 
мозг_умер   (2004-06-21 22:29) [3]

Сделал так:


function GetSomeTypeIndex(const stName: string): Integer;
var
 I: Integer;
begin
 Result := 0;
 for I := Ord(Low(TSomeType)) to Ord(High(TSomeType)) do
   if GetEnumName(TypeInfo(TSomeType), I) = stName then
   begin
     Result := I;
     Break;
   end;
end;


Строка выделенная жирным неверна, так как идет сравнение между строковым значением из массива SomeTypeStrings и значением из  TSomeType. Равны они, естесственно, не будут. Отсюда вывод: надо сопоставить строковое значение и значение из TSomeType. А вот как? Извините, мозг_совсем_умер.


 
Igorek ©   (2004-06-21 22:43) [4]


>    if GetEnumName(TypeInfo(TSomeType), I) = "st" + stName then


 
мозг_умер   (2004-06-21 22:59) [5]

;))

Ага, а если так:


type
TSomeType = (stOne, stTwo, stThree, stFour);

const
SomeTypeStrings: array[TSomeType] of string = ("Oh My God - This One", "Oh My God - This Two", "Oh My God - This Three", "Oh My God - This Four");


?



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
3-1086599646
АлекСандр
2004-06-07 13:14
2004.07.04
Как обработать бланк опроса


3-1086780672
Evg_fat
2004-06-09 15:31
2004.07.04
Сохранение *.jpg файла в базе данных


4-1085207955
Alex
2004-05-22 10:39
2004.07.04
использую ShellExecute мне нужно последовательное выполнение


14-1087283897
AlexG
2004-06-15 11:18
2004.07.04
Как отконфигурировать БЫСТРО WinNT или WinXP?


3-1086669134
ИМХО
2004-06-08 08:32
2004.07.04
ADO и DAO