Продолжаю оптимизацию библиотеки кодов :))) На этот раз - код удаления HTML-тэгов из строки. В пояснении к коду ясно описана цель, с которой был написан этот код - вырезание тэгов из чата скриптом ASP. Т.к. в чате реплики обычно небольшие и тэгов не очень много, то код из Библиотеки вполне подходит. Но - в напутствие тем, кто захочет использовать этот код в пользовательских программах на VB6 (именно на VB6, т.к. в пятой версии нет функции Split) - хочу сказать, что код можно сделать намного короче и оптимальнее. И по моим измерениям с помощью функции GetTickCount {Declare Function GetTickCount Lib "kernel32" () As Long}, работа кода ускоряется примерно в... 80-90 раз. (!) Т.е. несколько файлов общим объемом 3.86 МБ мой код анализировал 2 716 мс (учитывается чистое время работы процедуры, без задержек на чтение данных и т.д.), а библиотечный - аж 257 640 (!) мс. Собственно, использовал я такой код: Private Tags() As String Private I As Long Public Sub DeleteTagsMy(Source) NS1 = GetTickCount Tags() = Split(Source, "<") For I = 0 To UBound(Tags()) Tags(I) = Mid$(Tags(I), InStr(Tags(I), ">") + 1) Next I Source = Join$(Tags()) NS2 = GetTickCount End Sub Синтаксис вызова: Call DeleteTagsMy(String) или DeleteTagsMy String после окончания работы в String будет строка без HTML-тэгов.
Ответить
|