![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему Pos выдает 0?
asdfa © (2008-01-31 15:18:00)str = '14*0,5 2 v';
Pos(' ', str) = 0;
В чем может быть дело?
Anatoly Podgoretsky (2008-01-31 16:24:00) [21]И зачем Четыре поиска, что нельзя было двумя обойтись?
clickmaker (2008-01-31 16:23:00) [22]может, это не пробел, а #255?
Palladin (2008-01-31 16:21:00) [23]а еще, мля, спрашивает зачем весь код... песец...
Palladin (2008-01-31 16:20:00) [24]
> [14] turbouser © (31.01.08 16:17)
точно... все... пиво ударило в голову, ибо такую тупость не увидеть...
пошел домой...
Palladin (2008-01-31 16:19:00) [25]а теперь пожалуйста пропиши функцию
Function StrToByteCode(Const s:String):String;
Var
i:Integer;
Begin
Result:='';
For i:=1 to Length(s) To Result:=Result+'#'+IntToStr(Byte(s[i]));
End;
а потом пропиши пожалуйста перед первым if'ом
ShowMessage(StrToByteCode(TmpStr));
ShowMessage(StrToByteCode(' '));
и посмотри что же в строке на самом деле
turbouser (2008-01-31 16:17:00) [26]
> asdf © (31.01.08 16:14) [13]
>
>
> > DrPass © (31.01.08 16:11) [11]
>
>
> if Pos(' ', TmpStr) > Pos('-', TmpStr) then
> LenStandSize := Pos('-', TmpStr)
> else
> LenStandSize := Pos(' ', TmpStr);
>
> ну и как я тут могу ошибиться?
Смешно %)
Если Pos('-', TmpStr)=0, то и LenStandSize будет =0, т.к. Pos(' ', TmpStr) > 0
asdf (2008-01-31 16:14:00) [27]
> DrPass © (31.01.08 16:11) [11]
if Pos(' ', TmpStr) > Pos('-', TmpStr) then
LenStandSize := Pos('-', TmpStr)
else
LenStandSize := Pos(' ', TmpStr);
ну и как я тут могу ошибиться?
Palladin (2008-01-31 16:12:00) [28]
> у тебя Pos работает нормально,
да может у него и вообще Pos свой... "оптимизированный"...
DrPass (2008-01-31 16:11:00) [29]
> asdf © (31.01.08 15:25) [2]
>
> > Palladin © (31.01.08 15:19) [1]
>
> зачем полный код?
Затем, что скорее всего, у тебя Pos работает нормально, а ты просто неправильно проверяешь. Даже не "скорее всего", а "однозначно"
DrPass (2008-01-31 16:09:00) [30]
> Галинка © (31.01.08 15:35) [4]
> наверное пробел в начале строки стоит
А символы в строке же с 1 нумеруются
asdf (2008-01-31 15:55:00) [31]
> Anatoly Podgoretsky © (31.01.08 15:45) [8]
когда нечего сказать я молчу
Anatoly Podgoretsky (2008-01-31 15:45:00) [32]> Palladin (31.01.2008 15:43:07) [7]
Ну тогда и результат маленький, а у автора язык отрезали.
Palladin (2008-01-31 15:43:00) [33]Это не пустой символ :) это пробел. только очень маленький :)
Anatoly Podgoretsky (2008-01-31 15:43:00) [34]Бред искать пустой символ в строке.
Плохиш (2008-01-31 15:39:00) [35]
> Галинка © (31.01.08 15:35) [4]
> наверное пробел в начале строки стоит.
В паскале и делфи нумерация строк начинается с 1.
Галинка (2008-01-31 15:35:00) [36]наверное пробел в начале строки стоит. Поробуй типа:
Pos(' ', Trim(str));
Palladin (2008-01-31 15:29:00) [37]да мне пофиг как ты проверял, я твоим проверкам абсолютно не доверяю, я доверяю тому, что при прочих равных условиях пустой проект с кодом
str:='14*0,5 2 v'
ShowMessage(IntToStr(Pos(' ',str)))
выдаст 7
а все отличные значения это плод твоего больного воображения
asdf (2008-01-31 15:25:00) [38]
> Palladin © (31.01.08 15:19) [1]
зачем полный код? Я проверял - именно такая строка и передается, причем StringReplace(str, ' '... - работает на этой строке!
Palladin (2008-01-31 15:19:00) [39]в чем угодно, пока не предоставишь полный код ответа не получишь