Вернуть строку в ДОС кодировке

Вернуть строку в ДОС кодировке

-- Возвращает строку в DOS кодировке
-- dbo.WIN_DOS_STRING(expression)
-- expression - строка в WIN кодировке
CREATE FUNCTION dbo.WIN_DOS_STRING
(
 @ws VARCHAR(8000) -- строка
)
RETURNS VARCHAR(8000)
AS
BEGIN
  DECLARE  @ss int, -- счетчик
  @ds varchar(8000), -- DOS строка
  @ls int, -- длина обр. строки
  @os int -- код 1-го обраб-го символа
  SET @ds=''
  SET @ls=LEN(@ws)
  SET @ss=0
  WHILE @ss<@ls
  BEGIN
  SET @os=ASCII(SUBSTRING(@ws,1,1))
  SET @ds=@ds+CASE
  WHEN @os>=192 AND @os<=239 THEN CHAR(@os-64)-- 128.180
  WHEN @os>=240 AND @os<=256 THEN CHAR(@os-16)-- 224.239
  WHEN @os=168 THEN CHAR(240) --Ё
  WHEN @os=184 THEN CHAR(241) --ё
  ELSE CHAR(@os)
  END  
  SET @ss=@ss+1
  SET @ws=SUBSTRING(@ws,2,LEN(@ws)-1)
  END
  RETURN @ds
END

Автор: Sh@dow
Взято с Vingrad.ru http://forum.vingrad.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...