1 (edited by m.prokhachev 2018-08-14 19:06:50)

Topic: В MVD не работает функция Pos

Следующий код не работает ни в одном проекте, в котором я пробовал запустить его на исполнение:

var s: string;
...
s := '345,345';
ShowMessage(Pos(s, ','));

ShowMessage показывает "0" и все тут! менял строку поиска с запятой на цифры и числа - монопенисуально, 0 и идите к черту!
а вроде как Pos - стандартная функция MVD... предлагает писать свою реализацию Pos?)))

2 (edited by m.prokhachev 2018-08-14 19:15:37)

Re: В MVD не работает функция Pos

Что самое интересное - и при реализации собственной функции Pos

function MyPos(ps,st:string):byte;
var n,m,i,j,p: byte;
    s: string;
begin
  p := 0;
  n := ord(st[0]);
  m := ord(ps[0]);
  for i := 1 to n-m+1 do
    if st[i] = ps[1] then
      begin
        s := '';
        for j := i to i+m-1 do
          s := s + st[j];
        if s=ps then
          begin
            p := i;
            break;
          end;
      end;
  Result := p;
end;

тот же самый результат... я уже ни черта не понимаю...

Re: В MVD не работает функция Pos

Параметры указаны неправильно, поменяйте их местами

ShowMessage(Pos(s, ','));

Правильно

ShowMessage(Pos(',', s));  
Dmitry.

4 (edited by m.prokhachev 2018-08-15 08:23:07)

Re: В MVD не работает функция Pos

Прикольно) насколько я помню еще со школыных уроков информатики, всегда указывалась сначала строка, в которой поиск производится, а потом только строка, которая ищется) Но спасибо) Сам дурак, как обычно)