Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как посчитать число символов в строке?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Добрый день.

Использую функцию "LEN", вроде считает корректно, но перевод каретки на новую строку (ентер) считает как 2 символа, из за этого идёт не правильный подсчёт символов в сообщении.

Подскажите, что не правильно и как считать символы по другому?
10 сен 18, 09:49    [21669561]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Игорь_UUS
Добрый день.

Использую функцию "LEN", вроде считает корректно, но перевод каретки на новую строку (ентер) считает как 2 символа, из за этого идёт не правильный подсчёт символов в сообщении.

Подскажите, что не правильно и как считать символы по другому?


перевод на новую строку и есть 2 символа.
13+10

если надо считать как один - делайте replace 2 символов на 1 и считайте после него
10 сен 18, 10:10    [21669578]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Massa52
Member

Откуда:
Сообщений: 379
Игорь_UUS,
А что возвращает
DATALENGTH
10 сен 18, 10:13    [21669580]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Massa52
Игорь_UUS,
А что возвращает
DATALENGTH


возвращает то же самое количество символов
10 сен 18, 10:18    [21669585]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Massa52
Игорь_UUS,
А что возвращает
DATALENGTH


Получается так:

SELECT LEN(REPLACE(@Text, CHAR(13), ''))


или правильней будет по другому? (тут я попросту удаляю 13 символ)
10 сен 18, 10:21    [21669589]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Massa52
Игорь_UUS,
А что возвращает
DATALENGTH


Получается так:

SELECT LEN(REPLACE(@Text, CHAR(13), ''))



или правильней будет по другому? (тут я попросту удаляю 13 символ)
10 сен 18, 10:22    [21669590]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Игорь_UUS
Massa52
Игорь_UUS,
А что возвращает
DATALENGTH



Получается так:

SELECT LEN(REPLACE(@Text, CHAR(13), ''))




или правильней будет по другому? (тут я попросту удаляю 13 символ)


правильней или нет - судите по результату. Я не знаю, зачем Вам два символа как один считать.

только не забудьте еще учесть разницу в результатах функций(если вам нужны концевые пробелы)
select 
len(replace('123
   ',char(13),''))
,datalength(replace('123
   ',char(13),''))
10 сен 18, 10:33    [21669602]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Посетитель,

хорошо, спасибо...
10 сен 18, 10:54    [21669628]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3600
Игорь_UUS
или правильней будет по другому?

Неправильно.
Перевод строки может быть:
<13><10>
<13>
<10>
10 сен 18, 10:56    [21669630]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Alibek B.
<13>


Есть реальные примеры с таким переводом строки?
Технически, конечно, можно добавить. Но в реальности мне доводилось сталкиваться только с остальными двумя
<10> - Unix style
<13><10> - Windows style
10 сен 18, 11:02    [21669637]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
iap
Member

Откуда: Москва
Сообщений: 46981
Посетитель
Alibek B.
<13>


Есть реальные примеры с таким переводом строки?
Технически, конечно, можно добавить. Но в реальности мне доводилось сталкиваться только с остальными двумя
<10> - Unix style
<13><10> - Windows style
Возможны все три варианта.
Но примеры надо искать и в DOSе, и в Unixе, и в Windows...
Кроме того, в большинстве принтеров (для которых всё это когда-то и придумывалось) есть настройка реакции на эти символы.
10 сен 18, 11:18    [21669646]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
iap
Посетитель
пропущено...


Есть реальные примеры с таким переводом строки?
Технически, конечно, можно добавить. Но в реальности мне доводилось сталкиваться только с остальными двумя
<10> - Unix style
<13><10> - Windows style
Возможны все три варианта.
Но примеры надо искать и в DOSе, и в Unixе, и в Windows...
Кроме того, в большинстве принтеров (для которых всё это когда-то и придумывалось) есть настройка реакции на эти символы.


вот я и хочу узнать, какая программа/редактор создает тексты именно с 13 символом без 10 го.
Мне не встречались.
Поэтому я хоть и предлагал изначально надеть презерватив на свечку

автор
если надо считать как один - делайте replace 2 символов на 1 и считайте после него


но упорствовать в этом не стал, так как реальных текстов только с 13 символом никогда не видел.
10 сен 18, 11:26    [21669650]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3600
Посетитель
Есть реальные примеры с таким переводом строки?

Разумеется.
Буквально два дня назад столкнулся — MS Office сообщения об ошибках возвращает с переводом строки <13>.
Встречается достаточно часто, но названий ПО не помню.
10 сен 18, 12:22    [21669733]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать число символов в строке?  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3251
Посетитель
Alibek B.
<13>

Есть реальные примеры с таким переводом строки?
В старой MacOS, до того как они перешли на ядро FreeBSD, перенос строки был как раз таким. Ну и в принципе, любой файл экспорта с данными, присланный сторонней конторой, может запросто оказаться с произвольным переносом, зависит от их софта.
10 сен 18, 13:19    [21669783]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить