Форум FAQ О команде
Поиск по сайту:
 
Sybase
Sybase ASA  
  Статьи  
  Полезный код  
Sybase ASE  
Sybase IQ  
Sybase PowerDesigner  
Sybase PowerBuilder  

Продукты
Наши продукты  
Продукты партнеров портала  

Сообщества
Alef community  

Меню
Регистрация  
Почта  

Вход

Рассылка
Рассылка 'РСУБД Sybase ASA 9 - мощность, легкость и надежность'
Почтовая рассылка
"Технологии обработки данных компании Sybase"


Статистика
Яндекс цитирования

Rambler's Top100
Находится в каталоге Апорт

Главная -> ПО Sybase -> Sybase ASA -> Полезный код
Конвертор тегов SQL.RU в HTML

Конвертор тегов SQL.RU в HTML

Данной процедуре передается параметром имя текстового файла, где лежит нужный для конвертирования текст. После конвертирования процедура на выходе создаст текстовый файл, прибавив к имени обрабатываемого префикс "_new", в котором и будет лежать HTML версия обработанного текста.

CREATE PROCEDURE "DBA"."RUSUG_Convert" (
  IN @FileName char(512)
)
BEGIN
  DECLARE @T long varchar;
  DECLARE @I1 unsigned int;
  DECLARE @I2 unsigned int;

  SET @T = xp_read_file(@FileName);
  IF IsNull(@T, '') = ''
  THEN
    RAISERROR 20000 'Файл "' || @FileName || '" не найден';
    RETURN;
  END IF;

  SET @I1 = Locate(@FileName, '.', -1);
  IF @I1 > 0
  THEN
    SET @FileName = Left(@FileName, @I1 - 1) || '_new' || SubStr(@FileName, @I1);
  ELSE
    SET @FileName = @FileName || '_new';
  END IF;

  SET @T = Replace(@T, '<', '&lt;');
  SET @T = Replace(@T, '>', '&gt;');
  SET @T = Replace(@T, '&', '&amp;');

  SET @T = Replace(@T, '[b]', '<b>');
  SET @T = Replace(@T, '[/b]', '</b>');
  SET @T = Replace(@T, '[i]', '<i>');
  SET @T = Replace(@T, '[/i]', '</i>');
  SET @T = Replace(@T, '[center]', '<center>');
  SET @T = Replace(@T, '[/center]', '</center>');
  SET @T = Replace(@T, '[li]', '<li>');
  SET @T = Replace(@T, '[u]', '<u>');
  SET @T = Replace(@T, '[/u]', '</u>');

  SET @I1 = Locate(@T, '[color=');
  WHILE @I1 > 0
  LOOP
    SET @I2 = Locate(@T, ']', @I1);
    IF @I2 = 0
    THEN
      RAISERROR 20000 'Не обнаружен конец тега "COLOR" рядом с ' || SubStr(@T, @I1, @I1 + 20);
      RETURN;
    END IF;

    SET @T = Stuff(@T, @I1, @I2 - @I1 + 1, '<font color="' || SubStr(@T, @I1 + 7, @I2 - @I1 - 7) || '">');
    SET @I1 = Locate(@T, '[color=');
  END LOOP;
  SET @T = Replace(@T, '[/color]', '</font>');

  SET @I1 = Locate(@T, '[size=');
  WHILE @I1 > 0
  LOOP
    SET @I2 = Locate(@T, ']', @I1);
    IF @I2 = 0
    THEN
      RAISERROR 20000 'Не обнаружен конец тега "SIZE" рядом с ' || SubStr(@T, @I1, @I1 + 20);
      RETURN;
    END IF;

    SET @T = Stuff(@T, @I1, @I2 - @I1 + 1, '<font size="+' || SubStr(@T, @I1 + 6, 1) || '">');
    SET @I1 = Locate(@T, '[size=');
  END LOOP;
  SET @T = Replace(@T, '[/size]', '</font>');

  SET @I1 = Locate(@T, '[src');
  WHILE @I1 > 0
  LOOP
    SET @I2 = Locate(@T, ']', @I1);
    IF @I2 = 0
    THEN
      RAISERROR 20000 'Не обнаружен конец тега "SRC" рядом с ' || SubStr(@T, @I1, @I1 + 20);
      RETURN;
    END IF;

    SET @T = Stuff(@T, @I1, @I2 - @I1 + 1, '<pre>');

    SET @I2 = Locate(@T, '[/src]', @I1);
    IF @I2 = 0
    THEN
      RAISERROR 20000 'Не обнаружен завершающий тег "/SRC" рядом с ' || SubStr(@T, @I1, @I1 + 20);
      RETURN;
    END IF;
    SET @I1 = @I1 + 5;
    SET @T = Stuff(@T, @I1, @I2 - @I1, Replace(SubStr(@T, @I1, @I2 - @I1), Char(13) || Char(10), Char(13) || Char(1)));

    SET @I1 = Locate(@T, '[src');
  END LOOP;
  SET @T = Replace(@T, '[/src]', '</pre>');

  SET @I1 = Locate(@T, '[url=');
  WHILE @I1 > 0
  LOOP
    SET @I2 = Locate(@T, ']', @I1);
    IF @I2 = 0
    THEN
      RAISERROR 20000 'Не обнаружен конец тега "URL" рядом с ' || SubStr(@T, @I1, @I1 + 20);
      RETURN;
    END IF;

    SET @T = Stuff(@T, @I1, @I2 - @I1 + 1, '<a target="_blank" href="' || SubStr(@T, @I1 + 5, @I2 - @I1 - 5) || '">');
    SET @I1 = Locate(@T, '[url=');
  END LOOP;
  SET @T = Replace(@T, '[/url]', '</a>');

  SET @T = Replace(@T, Char(13) || Char(10), Char(13) || Char(10) || '<BR>');
  SET @T = Replace(@T, Char(13) || Char(1), Char(13) || Char(10));

  CALL xp_write_file (@FileName, @T);
END;



Дата публикации: Monday 27 March 2006 20:05:05
Материал прочитан: 9424 раз(а)
[ Назад ]



Продвижение сайтов
Биржа ссылок

Copyright©2005 phpMS. Все права защищены.
hosted on pets-tree