Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 17:06   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию String в Word

Подскажите, как перевести тип String в Word?
У меня есть строка
Код:
str:='hello';
Нужно, чтобы из нее вышло
Код:
hello
Уже типа WORD.

Использую это в массиве
Код:
type ... = array[WORD] of record
...
Array[String] не работает, потому использую Word.

Как перевести String в Word или использовать массив со строками (например: array['some string'])?
kettanaito вне форума Ответить с цитированием
Старый 28.09.2011, 17:26   #2
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

результат какой хочешь получить? слово hello в целое число перевести?
вообще не понятен вопрос.
fate вне форума Ответить с цитированием
Старый 28.09.2011, 17:37   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

У меня цель сделать примитивный ValueListEditor через массив, в котором две колонки, причем вторая не типа String.

В итоге получать результат таким образом:
Код:
type TArr = Array[String] of record
  Btn:TButton;
  Result:String;
end;
var Arr:TArr;
...
Arr['John'].Result:='Hello!';
Arr['John'].Btn.Click;
ShowMessage(Arr['John'].Result);
Взять значение массива не по числу, а по строчке.
kettanaito вне форума Ответить с цитированием
Старый 28.09.2011, 17:41   #4
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

т.е. к массиву обращаться не по индексу а строкой (одним из значений этого массива)

Не выйдет.

ну если хочется ты можешь конечно написать функцию в которую передаешь строку а она тебе вернет индекс массива если эта строка там встретилась, а использовать будешь так
Код:
ShowMessage(Arr[index('John')].Result);
fate вне форума Ответить с цитированием
Старый 28.09.2011, 17:43   #5
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

fate, а имеется какая-то аналогия тому, что я хочу? Может это не должен быть массив, но что-то очень похожее.
kettanaito вне форума Ответить с цитированием
Старый 28.09.2011, 17:47   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это может быть компонент, в котом один из методов по строке ищет в своих данных инфу. Наподобие FieldByName в DataSet
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.09.2011, 17:53   #7
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

тот же ListView метод IndexOf
fate вне форума Ответить с цитированием
Старый 28.09.2011, 17:58   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Возможно что-то вроде этого, обращение к массиву не по строке, а по именованной константе
Код:
type TMyType1 = (mtType1,mtType2,...,mtTypeN);
     TMyRecord = record
       a1: String;
       a2: TButton;
     end;
     TMyArray: array[TMyType1] of TMyRecord;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.09.2011, 18:20   #9
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Аватар, спасибо, я как раз ищу такую возможность. Но в этой проблеме это не выход.
kettanaito вне форума Ответить с цитированием
Старый 28.09.2011, 20:32   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

а подумать голова ? что должен написать компилятор , обращение к какому месту массива? как можно адресовать по строке ? вот адресовать по енуму (как Аватар предложил) - всё гуд, сам постоянно пользуюсь этим.
Вам всё равно надо написатьто , что для компилятора будет указанием - либо функцию перевода строки в индекс, или пользоваться другим массивом, где перебором ищется записаная строка и возвращается индекс (технически так реализован indexof, только он ещё умеет возвращать значение не найдено)

и кстати WORD - не логическое понятие о "слове", у машины вообще не может быть этого понятия - ни слово ни строка - нет их ! word это просто так называется тип целого

Последний раз редактировалось phomm; 28.09.2011 в 20:34.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
string-char-wchar_t-char-string чето потерял magog7 Общие вопросы C/C++ 0 08.08.2011 20:21
String большого размера, более 255 String[255] bitSoft Общие вопросы Delphi 9 28.03.2010 19:45
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57
перевод word в string Juffin Общие вопросы Delphi 2 12.05.2009 18:58