Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Как работает функция pos ?   Найти похожие ветки 

 
BFG9k   (2005-02-14 14:43) [0]

Сначала использовал функцию Pos для динамического обьема данных, представленного как PChar (но не заканчивающегося нулем). Иногда функция вылезает за этот обьем при поиске-  Invalid pointer operation, access violation.

Скопировал данные в строку (везде избавился от PChar). Вроде ошибки исчезли, но недавно снова возникли (не на моей машине - отловить проблематично). Вопрос такой: отличается ли работа Pos со строкой и PChar ? Кажется, строка тоже не кончается нулем.  Есть ли защита от проникновения в другую область памяти ? Например, может приниматься во внимание длина строки.


 
Marser ©   (2005-02-14 14:55) [1]

Отличается. И даже больше - Pos с PChar не работает, с PChar работает StrPos


 
Digitman ©   (2005-02-14 15:07) [2]


> BFG9k


приведи код


 
icWasya ©   (2005-02-14 16:14) [3]

>Кажется, строка тоже не кончается нулем.
Начиная с D2 String (он же AnsiString) всегда заканчивается нулём.


 
han_malign ©   (2005-02-14 17:06) [4]

>отличается ли работа Pos со строкой и PChar
- происходит неявное преобразование к строке, если это не явный массив of char(с детерминированной длиной) - то без контроля длинны - по нулевому символу... Длинну нужно ручками контролировать, скажем через SetString.


 
Георгий Бедный   (2005-02-19 21:06) [5]

А есть такая же функция (типа Pos), но чтобы искала, начиная с нужного символа (нужно для текстового редактора)??
Пример:
function PosEx(StartSymbolNum: Longint): longint;


 
begin...end ©   (2005-02-19 21:15) [6]

> Георгий Бедный   (19.02.05 21:06) [5]

Да, она так и называется - PosEx. См. справку.


 
Георгий Бедный   (2005-02-21 21:23) [7]

Спасибо! Действительно, "ларчик просто открывался". :)
Вот, например, когда-то так же было с WinMPQ. Пытался написать сам, да, вроде, подумалось, что название больно звучное - надо поискать. И что вы думаете?! - Нашёл-таки! Вот тебе и линии вероятности, ешь-его-в-вервольфа-душу-мать! ;)



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
4-1106135217
tradakad
2005-01-19 14:46
2005.03.06
WM_KEYDOWN = Shift + Tab?


3-1107928843
sea_wolf
2005-02-09 09:00
2005.03.06
Представление поля типа binary в dbgrid


1-1109073355
han-bratan
2005-02-22 14:55
2005.03.06
TListView - позиционирование на выбранный Item


8-1100374978
Alex_Rov
2004-11-13 22:42
2005.03.06
Не играет MP3 в Windows 98 SE


1-1108850142
viktorovich
2005-02-20 00:55
2005.03.06
Вопрос по Memo