No se si específicamente ese si. Pero se debería, de todas formas, yo te recomendaría pasarte a la CS4 como mínimo ^^
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Private Sub Form_Load()
Dim bRes As Boolean, iRes As Boolean
Dim leTest As String
leTest = "1..3|+33.2|11111111111111111111|12,12|12.12|133.23.330|36.658,30|81,838.59|-65,1|12,23,34|asdf|a12f|1..1|1,,1|1..2..3|&HAF|" & _
"&H221231321| &H2212313215646546546546516516512|9999999999999999999999999999999999999999999999999999| 0. 0|3" & Chr(10) & "0|3000" & Chr(10) & "0| &H1000000000| s &H1000000000" & _
"| +. &H1000000000| +. &H1000000000| +.a &H1000000000| +.a &H100000000v| +.a &H1000000 00v" & _
"|&H1000000 00v|&H1000000 00|+1.0e45|+e1. .2|+0e+11|.+0e+11|+1.0d45|+d1. .2|+0d+11|.+0d+11|" & _
"|+1. .2|0|+0.|+. 0|+|+ 0|" & Chr(10) & "-0|." & vbTab & " .+0|.0" & vbTab & vbNewLine & vbTab & vbNewLine & vbTab & vbNewLine & " .+0" & _
"|" & vbTab & vbNewLine & vbTab & vbNewLine & vbTab & vbNewLine & " +.0 " & _
"|" & vbTab & vbNewLine & vbTab & vbNewLine & vbTab & vbNewLine & " +00.0 " & _
"|" & vbTab & vbNewLine & vbTab & vbNewLine & vbTab & vbNewLine & " --.0 " & _
"|" & vbTab & Space(10) & vbNewLine & " +-+-.+.0|" & vbTab & " +.0"
Dim sTest() As String, i As Integer
sTest = Split(leTest, "|")
For i = LBound(sTest) To UBound(sTest)
bRes = IsNumeric(sTest(i))
iRes = IsNumeric_r338v3(sTest(i))
Debug.Print bRes, iRes, IIf(bRes <> iRes, "ERROR", "")
Next
Call Unload(Me)
End Sub
If Not (IsNumeric_r338v3(sTest(i))) Then Debug.Print "ERROR", i Else Debug.Print i
Private Function IsNumeric_r338v3(ByVal str As String) As Boolean
Const vbSpace As String = " "
Dim cReg As Object
Set cReg = CreateObject("VBScript.RegExp")
str = Replace$(str, vbCr, vbSpace)
str = Replace$(str, vbLf, vbSpace)
str = Replace$(str, vbTab, vbNullString)
str = Trim$(str)
If str = vbNullString Or str = "+" Or str = "-" Then Exit Function
With cReg
' Hexadecimal y Notacion cientifica
.Pattern = "^(?:&H[\dA-F]{1,16}|[+\-]?\d(?:\.\d+)?[de][+\-]?\d+)$"
.Global = True
.IgnoreCase = True
End With
IsNumeric_r338v3 = cReg.Test(str)
If Not IsNumeric_r338v3 Then
' Testeamos con . como separador de miles y , como separador de decimales
' Personalmente seria para mi "^[+\-]?(?:\d{1,3}(?:\.\d{3})*|\d*)\,?\d*$"
' ya que 133.23.330 no es un numero aunque IsNumeric diga que si ¬¬
cReg.Pattern = "^[+\-]?\s*(?:\d{1,3}(?:\.\d{1,3})*|\d*)\,?\d*$"
IsNumeric_r338v3 = cReg.Test(str)
If Not IsNumeric_r338v3 Then
str = Replace$(str, "..", vbNullString)
' Testeamos con , como separador de miles y . como separador de decimales
cReg.Pattern = "^[+\-]?\s*(?:\d{1,3}(?:\,\d{3})*|\d+)\.?\d*$"
IsNumeric_r338v3 = cReg.Test(str)
End If
End If
Set cReg = Nothing
End Function