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

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

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

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

Вход

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


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

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

Главная -> Полезный код
Конвертор тегов 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
Материал прочитан: 14038 раз(а)
[ Назад ]



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

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