Главная страница
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.039 c
1-1108966970
rosl
2005-02-21 09:22
2005.03.06
uses


1-1108823266
Коля
2005-02-19 17:27
2005.03.06
есть StringGrid. как выделить текст в одной из ячеек програмно?


3-1107855118
Sava
2005-02-08 12:31
2005.03.06
Хранения изображений в БД


6-1104006670
Matrex
2004-12-25 23:31
2005.03.06
Как определить группу в которой находится юзер?


14-1108632653
Ega23
2005-02-17 12:30
2005.03.06
Умереть - не встать!