Главная страница
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.043 c
4-1106293891
AlexandrK
2005-01-21 10:51
2005.03.06
Как показать на панели задач ВСЕ ОКНА приложения


14-1108657168
TmpGuest
2005-02-17 19:19
2005.03.06
Delphi - язык или среда ?


6-1104081220
Delta
2004-12-26 20:13
2005.03.06
запуск ехе на чужом компе


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


3-1107865579
YurikGL
2005-02-08 15:26
2005.03.06
Запрос на последние данные