¿Pueden ayudarme? u.u

Iniciado por jacohawk, 12 Enero 2011, 05:49 AM

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

jacohawk

Buenas!
Verán, tengo un texto, con muchas contraseñas, y necesito borrar cierta parte del texto para que quede sólamente "usuario:contraseña" en cada línea.

Tenía pensado ayudarme con VisualBasic pero no sé cómo hacer... :/

Esta es una parte del texto:
<tr style="background-color:#222222">
   <td>3COM</td>
   <td>CoreBuilder</td>
   <td>7000/6000/3500/2500</td>
   <td>Telnet</td>
   <td>debug</td>
   <td>synnet</td>
   <td></td>
   <td></td>
  </tr>

Necesito borrar todo menos el usuario y la contraseña...
Con lo cual, el usuario y la contraseña serían los antepenúltimos siempre, Usuario=debug y Contraseña=synnet
lo que tendría que sacar de esa parte es "debug:synnet"
Pero tengo miles de partes como esa en un archivo de texto... por eso necesito ayuda con algún código en VisualBasic para que me vaya borrando cierta parte.

Otro ejemplo:
<tr style="background-color:#222222">
   <td>3COM</td>
   <td>CoreBuilder</td>
   <td>7000/6000/3500/2500</td>
   <td>Telnet</td>
   <td>debug</td>
   <td>synnet</td>
   <td></td>
   <td></td>
  </tr>
  <tr style="background-color:#000000">
   <td>3COM</td>
   <td>CoreBuilder</td>
   <td>7000/6000/3500/2500</td>
   <td>Telnet</td>
   <td>tech</td>
   <td>tech</td>
   <td></td>
   <td></td>
  </tr>
  <tr style="background-color:#222222">
   <td>3COM</td>
   <td>HiPerARC</td>
   <td>v4.1.x</td>
   <td>Telnet</td>
   <td>adm</td>
   <td>(none)</td>
   <td></td>
   <td></td>
  </tr>

(Están todos seguidos hacia abajo en un archivo de texto)
Se convertiría en...
debug:synnet
tech:tech
adm:

(Hay algunos que pone "(none)" significa que no hay contraseña, sólo usuario, necesitaría también sustituir el "(none)" por "" osea (Nada).

Ojalá puedan ayudarme... u.u

Psyke1

#1
¡Bienvenido al foro! ;)

Usa RegExp para sacar todo lo que hay entre <td> y </td>. (usa el buscador, hay códigos míos por el foro)
El texto siempre seguirá esta serie? :huh:

Fijate:
Código (vb,6,7,16,17,26,27) [Seleccionar]

'<tr style="background-color:#222222">
'   <td>3COM</td>
'   <td>CoreBuilder</td>
'   <td>7000/6000/3500/2500</td>
'   <td>Telnet</td>
'   <td>debug</td>
'   <td>synnet</td>
'   <td></td>
'   <td></td>
'  </tr>
'  <tr style="background-color:#000000">
'   <td>3COM</td>
'   <td>CoreBuilder</td>
'   <td>7000/6000/3500/2500</td>
'   <td>Telnet</td>
'   <td>tech</td>
'   <td>tech</td>
'   <td></td>
'   <td></td>
'  </tr>
'  <tr style="background-color:#222222">
'   <td>3COM</td>
'   <td>HiPerARC</td>
'   <td>v4.1.x</td>
'   <td>Telnet</td>
'   <td>adm</td>
'   <td>(none)</td>
'   <td></td>
'   <td></td>
'  </tr>


A las 6 lineas te encontrarás con el usuario y la línea sig. es la contraseña; cada 8 lineas te los volverás a encontrar. :rolleyes:

DoEvents! :P

Psyke1

#2
O otra opción para hacerlo sin RegExp sería algo similar a esto:

Código (vb) [Seleccionar]

'Añade un TextBox, con el texto
Option Explicit

Private Sub Form_Load()
Dim sArr()          As String
Dim lLimit          As Long
Dim Q               As Long

   sArr = Split(Text1.Text, "<td>")
   lLimit = UBound(sArr)
   Q = 5
   
   Do While Q < lLimit
       MsgBox ParseString(sArr(Q)) _
              & vbNewLine _
              & ParseString(sArr(Q + 1))
       Q = Q + 8
   Loop
End Sub

Private Function ParseString(ByVal sText As String) As String
   ParseString = Split(sText, "</td>", 2)(0)
End Function


DoEvents! :P

Novlucker

http://office.microsoft.com/es-hn/excel-help/obtener-datos-externos-de-una-pagina-web-HA010218472.aspx

Ya se que no es una respuesta sobre VB exactamente, pero apuesto a que estas extrayendo esos datos viendo el código fuente de una web.

Desde excel puedes importar los datos directamente desde una tabla web, con lo cual tendrás todos tus datos en una tabla que podras recortar a tu gusto (los usuarios en una columna y las contraseñas en otra)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein