- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
'/**
' * Parser
' * @param String text
' * @param Scripting.Dictionary text
' */
private function Parse(text, data)
dim RE, EM, MO, res, lastIndex, val
res = ""
Set RE = New RegExp
RE.Pattern = "(\\?)\$(?:(\w+)|\{(\w+)\})"
RE.IgnoreCase = False
RE.Global = True
Set EM = RE.Execute(text)
if EM.Count > 0 then
lastIndex = 1
for each MO in EM
if Mid(MO.Value,1,2) = "\$" then
val = Mid(MO.Value,2)
else
if Mid(MO.Value,1,2) = "${" then
val = Mid(Mid(MO.Value,1,Len(MO.Value)-1),3)
else
val = Mid(MO.Value,2)
end if
val = data(val)
end if
res = res & Mid(text, lastIndex, MO.FirstIndex-lastIndex+1) & val
lastIndex = MO.FirstIndex+MO.Length+1
next
res = res & Mid(text, lastIndex)
Parse = res
else
Parse = text
end if
end function
Пример, как функция, которая в других языках описывается одной строкой, реализуется на этом говноязыке
guest 18.12.2008 21:46 # −4
Вот так это выглядит на ПХП:
guestinxo 04.06.2018 21:56 # 0
guest8 04.06.2018 22:53 # −999
guest 18.12.2008 21:51 # −4
вот так на перле:
guest 18.12.2008 21:52 # −4
При всём неуважении к VB, Вы-таки не справедливы. Встроенной поддержки регулярных выражений нет почти ни в каких язаках, а библиотеки для работы с ними, может и для VB есть.
guest 19.12.2008 16:50 # −4
угу, стопудово, надо линковаться с либами регекспа
guest 19.12.2008 20:04 # −6
дык, в этой функции юзаются регэкспы!
Мало того, этот говнокод я же и писал.
Я достаточно много писал на этом языке и для меня это было мучение, так как я люблю писать лаконичный и читабельный код, а тут, тужился, крутил, вертел, ну никак не выходило. В итоге плюнул и писал как получалось.
guest 11.08.2009 21:51 # −4
guest 01.12.2009 00:27 # −6
А
private function Parse(text, data)
пишется
private function Parse(text$, data$) as string
Аффтар, посамоутверждайся за счёт QBasic-а, он по сравнению с, например, Delphi, точно говно.
This sucks.
DPNET 14.10.2011 23:52 # 0
barop 15.04.2017 19:44 # −6
guest8 05.06.2018 20:34 # −999
2_71828182846 24.08.2021 20:38 # 0