Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему Pos выдает 0?


Страницы:   1 2

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]

в чем угодно, пока не предоставишь полный код ответа не получишь


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо