2012-06-01 1 views
2

У меня есть строка, из которой я хочу извлечь один символ, который необходимо использовать в операторе Case. Дело в том, что Case принимает значения Char, а не строковые значения. Итак, как мне преобразовать один символ строки в char?Как преобразовать один символ из строки в char в delphi

ответ

8

Используйте строку как массив символов (на основе 1) и используйте индекс символа, который вы хотите использовать в операторе case. Например, если вы хотите использовать первый символ:

case MyString[1] Of 
// ... 
end; 

NB убедитесь, что вы проверить строка, по крайней мере, той длины, прежде чем использовать индекс, или вы получите сообщение о нарушении прав доступа.

+1

Руки вверх, если у вас есть функция в вашей личной библиотеке кода с подписью вроде следующего: 'функции StrToChar (Const S: String; Index: Integer = 1; по умолчанию: Char = '«): Char ; ' – afrazier

+1

Хорошее редактирование, я делаю C# и Delphi, и всегда получаю ментальный блок на ноль и 1 на основании, нужно проверять каждый раз, когда я переключаю –

+0

. Короче это:' c: = Копировать (s + '', 1 , 1) [1]; – asdjfiasd

0

С string стал 0-основано на mobile platforms, существует также безопасный способ получения символа из односимвольной строки.

myString[Low(myString)]