manejo de datos, comparar cadenas, borrar un contenido de una cadena

Iniciado por -Xenon-, 17 Enero 2006, 21:16 PM

0 Miembros y 1 Visitante están viendo este tema.

-Xenon-

hola, he estado probando y no consigo averiguar como hacer esto:

dim var1 as string, var2 as string
var1 = "6801|127.0.0.1¤"
var2 = "127.0.0.1¤"
if var1 = * & var2 then
msgbox "funciona"
end if


lo que intento es conseguir que el asterisco lo reconozca como que si a variable var1 = a cualquiercosa y 127.0.0.1¤" entonces:

usando el asterisco de comodin, he provado varias maneras distintas, pero no lo consigo, esto se puede hacer? de alguna forma?

he probado a poner el asterisco asi: '*' ; ""*"" ; "*" ; ''*'' ; * ; (*)  y nada.... alguna idea?




siguiente duda, estaba probando hacer esto:

var1 = "6801|127.0.0.1¤6802|192.168.0.1¤6803|192.168.1.3¤"


y ahora queria eliminar por ejemplo esta parte de la cadena ( 6802|192.168.0.1¤ ), pero no se como se podria hacer, habia pensado en usar punteros como en C, y hacer algo asi:

lee hasta "|", es igual a  6802?
no
guardalo y  lee hasta "¤" es igual a 6802?
no
guardalo y lee hasta "|", es igual a  6802?
si
no guardes hasta "¤"


se puede hacer eso usando punteros? sabeis un metodo mejor?

un saludo gracias

Cuando el ingenio se queda pequeño,
No basta con poner empeño,
Solo el talento consigue el diseño

kakinets

La Verda no entiendo mucho lo que quieres lograr.

En el primer codigo que significa eso "¤"

el_chente23

Citarhe probado a poner el asterisco asi: '*' ; ""*"" ; "*" ; ''*'' ; * ; (*)  y nada.... alguna idea?

que yo sepa, el * se usa unicamente para hacer multiplicaciones en vbasic, nose puede usar como comodin,  tendrias que idear otra forma de codigo

Saludos

-Xenon-


ok gracias, esa era la duda, no sabia si tambien podria servir de comodin, asi que una manera de saberlo era provando :P

gracias, un saludo!
Cuando el ingenio se queda pequeño,
No basta con poner empeño,
Solo el talento consigue el diseño

icisneros

Yo creo que tengo una solucion aver si te he entendido bien:


dim var1 as string, var2 as string
var1 = "6801|127.0.0.1¤"
var2 = "127.0.0.1¤"
if var1 = * & var2 then

if right(var1,len(var2)) = var2 then
'funciona
end if


Con eso compararias la parte final de var1 con var2 y si son igulaes es que funciona, es eso lo que querias?

Saludos!!

-Xenon-


esto es lo que yo buscaba, y no sabia si habia alguna manera sencilla de hacerlo, como no lo he visto, pues me he machacado un poco el seso y se me ha ocurrido esta chapucilla de codigo  :-[ , sin bucles for ni while  :-[ , only "goto"



COMPARAR CADENAS, BUSCANDO UNA CADENA DENTRO DE OTRA CADENA

ejemplo: 

Citartext2.text = "hola caracola"
text1.text = "raco"
click en buscar y resultado = TRUE , al haber encontrado "raco" en la cadena "hola caracola"

objetos: 2 textbox y un commandbuton

Dim z As Boolean

Private Sub Command1_Click()
x = busca(Text2, Text1)
MsgBox z
End Sub

Private Function busca(x As String, y As String)
Dim cuen1 As Integer, cuen2 As Long
cuen1 = 1
cuen2 = Len(x)
If cuen2 > Len(y) Then
z = False
GoTo b
End If
a:
If Mid(y, cuen1, cuen2) = x Then
z = True
GoTo b
Else
If cuen1 > Len(y) Then
z = False
GoTo b
End If
cuen1 = cuen1 + 1
End If
GoTo a:
b:





lo otro que buscaba era algo parecido pero al reves, buscar y eliminar una cadena que haya en otra cadena, como lo que yo queria era muy especifico, el codigo esta hecho en base a lo que yo necesitaba, para borrar de ¤ a ¤ sabiendo un dato que hiba antes de | , asi que supongo que modificandolo un poco os podria valer parar hacerlo mas general su uso:


BORRAR UNA CADENA SABIENDO UN DATO, DE ENTRE ESTOS CARACTERES ¤ Y ¤

objetos: 2 label

Private Sub Form_Load()
Dim lol As String, var1 As String, var2 As String, var3 As String, x As Long, y As Long
var1 = "6801|127.0.0.1¤6802|127.0.0.3¤6803|127.0.0.2¤"
var2 = "6802"
lol = "|"
a:
x = x + 1: y = 1
If x = Len(var1) Then GoTo c
If lol <> Mid(var1, x, y) Then
var3 = var3 + Mid(var1, x, y)
GoTo a
Else
If var2 = Right(var3, 4) Then
var3 = Left(var3, Len(var3) - 4)
b:
x = x + 1
If x = Len(var1) Then GoTo c
If Mid(var1, x, y) = "¤" Then
GoTo a
Else
GoTo b
End If
Else
End If
var3 = var3 + lol
GoTo a
End If
c:
If Right(var3, 1) <> "¤" Then var3 = var3 + "¤"
Label1.Caption = var1
Label2.Caption = var3
End Sub



lo que hace es que dandole esta cadena:

6801|127.0.0.1¤6802|127.0.0.3¤6803|127.0.0.2¤

yo queria eliminar el numero de puerto que yo quiera y ala vez la ip que hiba al lado, asi que por ejemplo si en var2, le poniamos 6802, borraria y quedaria asi:

6801|127.0.0.1¤6803|127.0.0.2¤

se entiende bien, no? estas eran las soluciones a mis problemas , jeje, lo necesitaba para otra duda que pregunte, y ahora con combiando estas cosas, posteare la solucion a otro post, que me tenia intrigado :p

un saludo
Cuando el ingenio se queda pequeño,
No basta con poner empeño,
Solo el talento consigue el diseño