Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: -Xenon- en 17 Enero 2006, 21:16 pm



Título: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: -Xenon- en 17 Enero 2006, 21:16 pm
hola, he estado probando y no consigo averiguar como hacer esto:
Código:
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:
Código:
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:
Código:
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



Título: Re: DUDAS: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: kakinets en 18 Enero 2006, 02:14 am
La Verda no entiendo mucho lo que quieres lograr.

En el primer codigo que significa eso "¤"


Título: Re: DUDAS: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: el_chente23 en 18 Enero 2006, 02:57 am
Citar
he 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


Título: Re: DUDAS: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: -Xenon- en 18 Enero 2006, 13:36 pm

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!


Título: Re: DUDAS: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: icisneros en 18 Enero 2006, 22:49 pm
Yo creo que tengo una solucion aver si te he entendido bien:

Código:
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!!


Título: Re: DUDAS: manejo de datos, comparar cadenas, borrar un contenido de una cadena
Publicado por: -Xenon- en 20 Enero 2006, 14:49 pm

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: 

Citar
text2.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

Código:
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

Código:
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