Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1108541537
Neznaika
2005-02-16 11:12
2005.03.06
StayOnTop


3-1107759082
DmitryNekl
2005-02-07 09:51
2005.03.06
Как создать вычисляемое поле в run-time?


14-1107783991
Piter
2005-02-07 16:46
2005.03.06
Что вы настраиваете после установки WinXP?


14-1108391307
Anonimus
2005-02-14 17:28
2005.03.06
.inf Файлы. Как писать?


14-1108122411
Иксик2
2005-02-11 14:46
2005.03.06
Я так не играю




   Наверх