grep -oi } texto | wc -l
Dim c As String
Dim d As String
Dim contar3 As Integer
Dim contar4 As Integer
contar3 = CInt(Val(c))
contar4 = CInt(Val(d))
Shell "grep -oi { texto | wc -l 2>&1" To c
Shell "grep -oi } texto | wc -l 2>&1" To d
If c = d Then
Message.Info("Hay coincidencia")
Else
Message.Info("No hay coincidencia")
Endif
(09-07-2021, 04:09)alberto-moyano escribió: mi función es esta
Código:Dim c As String
Dim d As String
Dim contar3 As Integer
Dim contar4 As Integer
contar3 = CInt(Val(c)) ' El valor en este punto es 0 y no entiendo esa conversión
contar4 = CInt(Val(d)) ' Lo mismo que lo de arriba
Shell "grep -oi { texto | wc -l 2>&1" To c '¿qué es texto. Un path, un archivo fijo, una carpeta?
Shell "grep -oi } texto | wc -l 2>&1" To d ' Por otra parte no recuerdo bien la sintáxis de grep, pero ¿ese corchete no sobra?
If c = d Then
Message.Info("Hay coincidencia")
Else
Message.Info("No hay coincidencia")
Endif
El error que obtengo es que el valor de c y d son nulos.
Mi duda es si estoy obteniendo el error en la salida de shell o en la conversión de string a integer
Dim c As String
Dim d As String
Dim contar3 As Integer
Dim contar4 As Integer
'
Shell "grep -oi { texto | wc -l 2>&1" To c
Shell "grep -oi } texto | wc -l 2>&1" To d
contar3 = Val(c)
contar4 = Val(d)
If contar3 = contar4 Then
Message.Info("El recuento es igual")
Else
Message.Info("El recuento no es igual")
Endif
Dim texto As String
Dim c As String
Dim d As String
Dim contar3 As Integer
Dim contar4 As Integer
texto = Texteditor1.Text
' Shell "grep -oi { texto | wc -l 2>&1" To c
' Shell "grep -oi } texto | wc -l 2>&1" To d
c = "4" 'este valor lo cambio y compruebo que las variables, la conversión y el condicional funcionan, ergo el problema lo tengo con la salida del shell
d = "2"
contar3 = Val(c)
contar4 = Val(d)
If contar3 = contar4 Then
Return
Else
Message.Info("Diferentes")
Endif
Dim c As String
Dim d As String
Dim contar3 As Integer
Dim contar4 As Integer
Shell "grep -o { " & ruta & " | wc -l 2>&1" To c
Shell "grep -o } " & ruta & " | wc -l 2>&1" To d
contar3 = Val(c)
contar4 = Val(d)
If contar3 = contar4 Then
Return
Else
Message.Info("Hay diferencias en las cantidades")
Endif