Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: el_lichal en 17 Noviembre 2005, 10:18 am



Título: Comparación de cadenas (string)
Publicado por: el_lichal en 17 Noviembre 2005, 10:18 am
Hola, tengo el siguiente problema cuando intento comparar estas dos cadenas (CompLiquido2 y CompLiquido), VB las considera diferentes porque al parecer hay un salto de carro

La primera variable, VB la muestra de la siguiente forma:

CompLiquidido2= 0/
0,1/
0,2/
0,3/
0,4/
0,5/
0,6/
0,7/
0,8/
0,9/
0,95/
1/
La segunda variable:
CompLiquido   = 0/0,1/0,2/0,3/0,4/0,5/0,6/0,7/0,8/0,9/0,95/1/

He intentado averiaguar si había un caracter no imprimible


    Dim Posicion As Integer
    Dim Temp As String
       For i = 0 To 255
        Temp = Chr(i)
        Posicion = InStr(CompLiquido, Temp)
               If Posicion > 0 Then Debug.Print ("Temp= " & Temp)
    Next i

 La salida es la siguiente:

Temp= ,
Temp= /
Temp= 0
Temp= 1
Temp= 2
Temp= 3
Temp= 4
Temp= 5
Temp= 6
Temp= 7
Temp= 8
Temp= 9

¿Como puedo eliminar el salto de carro?

Gracias


Título: Re: Comparación de cadenas (string)
Publicado por: Xpeed en 17 Noviembre 2005, 16:09 pm
Bueno el salto de carro en VB es vbCrLf ... pero se me ocurre que seria más fácil que metieras los datos en una matriz... no sé si me explico bien... así podrias comparar los contenidos de cada una con un ciclo simplemente y te evitarias eso ... si no me expliqué bien pues avisas...


un saludo.


Título: Re: Comparación de cadenas (string)
Publicado por: krispin en 17 Noviembre 2005, 17:12 pm
prueba con alguno de estos:
Replace "micadena", vbCrLf, ""
Replace "micadena", vbCr, ""
Replace "micadena", vbLf, ""


adiox.


Título: Re: Comparación de cadenas (string)
Publicado por: soplo en 17 Noviembre 2005, 18:17 pm
Hola

Pues todo lo que tienes que hacer es buscar vbcrlf en tu string y quitarlo si lo está.

Para ello Instr(cadena$,cstr(vbcrlf))

Si el resultado es distinto de cero ahí tienes la posición donde está así que solo tendrás que hacer
Posicion=instr(0,cadena$,cstr(vbcrlf))
cadena$=left(cadena$,Posicion-1) & right(cadena$,Posicion+1)

Un saludo


Título: Re: Comparación de cadenas (string)
Publicado por: el_lichal en 17 Noviembre 2005, 18:40 pm
Hola, gracias a todos por contestar. Es cierto utilizando la función replace y vbcrlf he conseguido eliminar el salto de carro y que las considere iguales.

También habia podido comparar los elementos 1 a uno utilizando la funcion Split
Split(CompLiquido, "/", -1, 1)
pero me fustraba no saber como eliminar el salto de carro

Gracias de nuevo.