:: Visual Foxpro, Foxpro for DOS
alltrim и код 0 (chr(0)) в строке
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
При считывании информации из файла fread() получаю строчку, в которой первые символы значимые, а затем chr(0). Alltrim() эти символы не обрезает... :-( помогло только
TRANSFORM(m.lcNameDBC,REPLACE("#",LEN(m.lcNameDBC)))
Ratings: 0 negative/0 positive
Re: alltrim и код 0 (chr(0)) в строке
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
danton1973
При считывании информации из файла fread() получаю строчку, в которой первые символы значимые, а затем chr(0). Alltrim() эти символы не обрезает... :-( помогло только
TRANSFORM(m.lcNameDBC,REPLACE("#",LEN(m.lcNameDBC)))

Так функции обрезания имеют же и дополнительные параметры:
ALLTRIM(Expression [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: alltrim и код 0 (chr(0)) в строке
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
danton1973
TRANSFORM(m.lcNameDBC,REPLACE("#",LEN(m.lcNameDBC)))

В любом случае такое выражение не эквивалентно ALLTRIM(), так как не обрезает хвостовые нули, а возвращает символы, предшествующие первому нулевому байту, который при чтении с помощью FREAD() может оказаться и внутри строки.

Да и коды форматирования там не нужны, то же самое можно сделать проще:
TRANSFORM(m.lcNameDBC,'')

А вот явный вариант извлечения подстроки с начала строки до первого появления нулевого байта:
STREXTRACT(m.lcNameDBC,'',0h00,1,2)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 34 dimag  (Гостей: 33)

© 2000-2024 Fox Club 
Яндекс.Метрика