![]() |
|
|
#1
|
|||
|
|||
![]() Доброго времени суток.
Delphi 2009. Ещё вопросик. Функция StrPos возвращает указатель на первое найденное значение, а как получить не указатель, а число, например такая-то буква встречается на 5 позиции. Или как перевести указатель в число. Последний раз редактировалось EraM, 02.06.2009 в 21:01. |
#2
|
|||
|
|||
![]() Если я правильно понимаю, то функция поз возвращает как раз индекс начала вхождения, т.е. фактически позицию, если рассматривать строку как массив...
|
#3
|
|||
|
|||
![]() Как тогда этот индекс перевести в число.
Потому что если вывести например showmessage(pos); где pos результат функции strpos то он выдаёт просто часть слова за найденным символом. |
#4
|
||||
|
||||
![]() Функция Pos как уже было сказано возвращает именно целочисленное значение. Если не найдено то 0.
showmessage(pos); конечно будет ошибка, так как ShowMessage требует в качестве параметра строку, нужно число преобразовать в строку, воспользовавшись например функцией IntToStr(); Пример: Код:
ShowMessage(IntToStr(pos('ек', 'Текст'))); |
#5
|
|||
|
|||
![]() Цитата:
Вы что-то не дочитали в теме, выше написано, что если сделать showmessage(pos) после pos := strpos(...); и посмотреть что она вернёт, то это будет срока, а не число и showmessage ни на что не ругается, а просто выдаёт на экран строчку. |
#6
|
|||
|
|||
![]() По-моему я сам так удачно ошибся, в название темы написав pos, хотя имел ввиду(использую) strpos. Щас заменю на pos - посмотрим.
|
#7
|
|||
|
|||
![]() Ёсмаё вот ты запудрил всем голову)))
у тебя код типа Код:
var pos: String begin pos := StrPos(...) Если так то она возращет строку а не указатель и тогда функция ShowMessage уместна. А тебе нужно вернуть позицию какого-либо символа в строке или что? |