https://foro.gambas-es.org/viewtopic.php?f=5&t=1002&p=5594#p5594
-----------------------------------
jsbsan
Viernes, 08 Octobre 2010, 21:15

Re: [Consulta]Verificar Texto / Retorno De String Y No Boolean
-----------------------------------
El codigo de Soplo esta muy bien, y lo he mejorado un poco.
- Detecta si no hay correos en el texto
- Y usa un array ( email[] ) por si el texto contiene más de un correo, haciendo que la función  ExtraerEmail  devuelva ese array o matriz.

Te paso el codigo, he creado un textArea (llamado TextAreaAnalizar), un Listbox (llamada ListBoxCorreos) y un boton (llamado ButtonBuscar)

Te adjunto el código:
[code linenumbers=false syntax=gambas]' Gambas class file
PUBLIC FUNCTION ExtraerEmail(Texto AS String) AS String[]
DIM PartesEmail AS NEW string[], Parteusuario AS NEW string[], partedominio AS NEW String[], Email AS NEW String[]
DIM a AS Integer

PartesEmail = Split(" " & Texto & " ", "@")

IF Len(partesemail[0]) = (Len(texto) + 2) THEN 
Message.Info("no hay direcciones de correo en el texto")
RETURN email
ENDIF

'redimensiona los arrays segun las partes obtenidas -1 
email.Resize(PartesEmail.count - 1)
parteusuario.resize(PartesEmail.count - 1)
partedominio.resize(partesemail.count - 1)

'busca las partes de usuario y dominio de cada @ encontrada
FOR a = 0 TO partesemail.count - 2 STEP 1
parteusuario[a] = Mid$(partesemail[a], RInStr(PartesEmail[a], " ") + 1, Len(partesemail[a]) - InStr(PartesEmail[a], " "))

partedominio[a] = Mid$(partesemail[a + 1], 1, InStr(PartesEmail[a + 1], " ") - 1)

email[a] = parteusuario[a] & "@" & partedominio[a]
NEXT 

'devuelve el array email[]
RETURN Email
END




PUBLIC SUB ButtonBuscar_Click()
DIM email AS NEW String[]
DIM a AS Integer
ListBoxCorreos.Clear()

Email = ExtraerEmail(TextAreaAnalizar.text)

FOR a = 0 TO email.Count - 1
ListBoxCorreos.Add(email[a])
NEXT 

END[/code]

y un pantallazo de como lo resuelve:
 [img]http://foro.gambas-es.org/files/images/6/pantallazo_1286568322_539525.png[/img]

Saludos


