Casi nada de Programación solo de Logica. :O

Iniciado por Freeze., 15 Diciembre 2007, 16:54 PM

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

Freeze.

Hola, tengo un backup de mi foro necesito sacar solamente los msn de entre tantas cosas.

Esta es la manera en que puede encontrarse un email:


'XXXXX', 'unemail@hotmail.com', 'una.ip.normal.1', 1, 0, '', 'Hola esta es una prueba'


Como hago para de todo ese texto sacar solo:

'unemail@hotmail.com' o unemail@hotmail.com

He intentado de varias maneras y solo logro unas partes muy grandes. :S

Spider-Net

Hay muchas formas de hacer eso, yo haría un split... algo así
Código (vb) [Seleccionar]

Private Sub Command1_Click()
Dim data As String
Dim vdata As Variant

data = "'XXXXX', 'unemail@hotmail.com', 'una.ip.normal.1', 1, 0, '', 'Hola esta es una prueba'"
vdata = Split(data, "'")
MsgBox vdata(3)
End Sub


Y ya devuelve el valor del e-mail. Haces que en data se almacene la cadena correspondiente y ya está :¡ ;D ;D

Saludos.

Freeze.

Ps con una sola cadena sin repetirse esta muy bien :xD

Pero tengo esto:

Código (vb) [Seleccionar]

Private Sub Form_Load()
Dim data As String
Dim vdata As Variant
Open "D:\Foros\SMF\Backup\localhost.sql" For Binary Access Read As #1
data = Input(LOF(1), #1)
Close #1
vdata = Split(data, "@")
MsgBox vdata(1)
End Sub


Spider-Net

Pues eso, tu has puesto la cadena y yo te puesto la solución para esa cadena hombre.. xD pero vamos no se donde está el problema:

Mete un textbox y haces así y en teoría debería de meter todos los mails...

Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim i as integer
Dim data, datos As String
Dim vdata, vdatos As Variant

Open "D:\Foros\SMF\Backup\localhost.sql" For Binary Access Read As #1
data = Input(LOF(1), #1)
Close #1
vdata = Split(data, "@")

For i = 0 To Numero de Entradas del localhost.sql
   datos=vdata(i)
   vdatos = Split(datos, "'")
   Text1.Text = Text1.Text & vdatos(3) & vbcrlf
Next i
End Sub


Creo que así iría bien, prueba y me dices, esque sin el archivo no puedo probarlo.. xD

Freeze.

No, creo que esto no tiene solucion. Tendre que sacar los emails manualmente T_T

Spider-Net

Que va hombre, tampoco creo yo que sea tan difícil, pero bueno si quieres hacerlo manualmente.. que te sea leve.. xD

vivachapas

no habra alguna forma de buscar todas las "palabras" q tengan "@"...
yo pienso en algo asi: dodne haya un "@" q lo seleccione (como cuando uno hace doble click en una palabra) y los vaya poniendo en algun txt o algo asi...

no se como hacerlo solo es una idea...

SKL (orignal)

#7
Hice esto.... espero que te ayude.... y que sea lo que vos queres...


Código (vb) [Seleccionar]
    Dim sValor      As String
    Dim sData()     As String
    Dim i           As Long
   
    'la cadena a extraer
    sValor = "'XXXXX', 'sunemail@hotmail.com', 'una.ip.normal.1', 1, 0, '', 'Hola esta es una prueba'"

    'Delimitamos la coma ,
    sData = Split(sValor, ",")
   
    'Recorre todos los valores
    For i = 0 To UBound(sData)
    'los escribe en el debug (inmediato)
        Debug.Print sData(i) & vbCrLf
    Next

    'aca mostramos el mensaje con el mail
    MsgBox Trim(Mid(sData(1), 3, Len(sData(1)) - 3))




saludos.. :D

chrominum

Seria mas o menos asi:

Buscar @
Una vez encontrado @ retroceder hasta encontrar '
una vez encontrado ' copiar hasta encontrar otro '
pegar en un archivo .txt
comenzar otra vez

Freeze.

Siento decepcionarlos pero tampoco. :xD

He intentado muchas maneras pero nad me sale. :D