replace на vb6

программирование visual basic replace richTextBox VB6

Подскажите пожалуйста, почему этот код не работает:

Open "C:\temp.html" For Input As #1
Open "C:\temp.rtf" For Output As #2
While Not EOF(1)
Line Input #1, SsTRING
'SsTRING
Codde = Replace(SsTRING, "<i>", "{\i ", 1, -1, vbTextCompare)
Codde = Replace(SsTRING, "</i>", "}")
Codde = Replace(SsTRING, "<b>", "{\b ")
Codde = Replace(SsTRING, "</b>", "}")
Codde = Replace(SsTRING, "<strong>", "{\b ")
Codde = Replace(SsTRING, "</strong>", "}")

Print #2, SsTRING
Print #2, Codde
Wend
Close #1
Close #2

Text2.FileName = "C:\temp.rtf"

Примечание:
Есть файл с таким содержанием:

<b>жирный</b>
<i>курсив</i>
<strong>fff</strong>

По идее код должен заменять <i> на {\i и записывать результат вместе с исходной строкой в файл. Но он вместо результата пишет два раза исходную строку.
Ответы:
А что конкретно не работает? Программа вываливается с сообщением ошибки? Если да то какая ошибка?
А зачем вы делаете Print #2, SsTRING? Я так понимаю - это исходная строка. И она никоим образом не изменяется (так как передается в функцию Replace ByVal, т.е. по значению, а не по ссылке).
Затем, вы подряд переменной Codde присваиваете измененный вариант SsTRING. Но при этом на выходе вы получите (по идее) только последний вариант, т.е. произойдет только замена strong (т.к. остальные промежуточные результаты будут перезаписаны).
Если можно было бы в Replace записывать сразу несколько сущностей, которые следует заменить, то проблема была бы решена (в смысле более компактно)
Можно сделать так (примерно):
Codde = Replace(SsTRING, "<i>", "{\i ", 1, -1, vbTextCompare)
Codde = Replace(Codde, "</i>", "}")
Codde = Replace(Codde, "<b>", "{\b ")
Codde = Replace(Codde, "</b>", "}")
Codde = Replace(Codde, "<strong>", "{\b ")
Codde = Replace(Codde, "</strong>", "}")


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.