функций определяется способом передачи параметров
функций определяется способом передачи параметров при вызове.
Передача по ссылке имеет свои достоинства и недостатки. Недостатком
является зависимость функции от метода ее использования. А наиболее
важным достоинством - экономия памяти, позволяющая избежать ошибок
времени выполнения из-за нехватки памяти при обработке строк.
В обычной ситуации для изменения исходной строки (переданной по
значению) после выполнения функции измененную строку необходимо
присвоить первоисточнику:
VAR := "Привет"
VAR := FUNCTION(VAR)
При работе с большими строками это требует времени и памяти!
Вот пример использования метода передачи по ссылке:
VAR := "Привет"
FUNCTION(@VAR)
Для большинства CT II-функций передача по ссылке не дает никаких
дополнительных эффектов, и лишь для некоторых может влиять на
характер выполнения. При этом функция непосредственно изменяет
значения символьных переменных, переданных по ссылке, что экономит
память и ускоряет обработку, поскольку не осуществляется
дополнительное копирование.
Функциям, увеличивающим длину строки, нельзя передавать параметры
по ссылке. Ниже приводится список функций, которые могут изменять
длину строки:
ATREPL() CHARONE() POSDEL() WORDONE()
CHAREVEN() CHARONLY() POSINS() WORDONLY()
CHARODD() CHARREM() POSREPL() WORDTOCHAR()
CSETREF()
Эта функция позволяет оптимизировать скорость вычислений и
использование памяти функциями, допускающими передачу параметров по
ссылке. Более подробная информация о ее использовании приводится в
описаниях соответствующих функций.
CHR(26) - маркер конца файла
В строке, возвращаемой такими функциями, как CRYPT(), CHARPACK() и
многими другими, могут присутствовать символы CHR(26), что может