Ayuda con mi projecto ...PLZZZ

Iniciado por Xephiro, 28 Agosto 2006, 13:27 PM

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

Xephiro

Bueno miren quiero hacer un programa que me pesque solo una parte de ciertos archivhos de texto
Tego varios archivos de texto con contenidos como el siguiente
<player name="personaje" id="id del jugador" account="cuenta" ......
Bueno lo que quiero es saber si hay alguna forma de hacer que solo me pesque lo que es "id del jugador" y que se le pueda modificar ...  :huh: :huh: :huh:

Zeroql

usa los archivos .INI en este foro hay mucha info acerca de eso
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


NYlOn

Suponiendo que en un Text1 esta la info esa q mostraste:

    Dim p1 As Integer, p2 As Integer, ID As String, Todo As String, Antes As String, Despues As String
    Todo = Text1 'text1 va a contener la linea <player name="...
    p1 = InStr(1, Todo, "id=", vbTextCompare) 'buscamos desde el principio hasta que encuentre ID= (esto nos devuelve la posicion de ID=)
    p2 = InStr(p1 + 4, Todo, """", vbTextCompare)
    'el +4 y -4 es porque ID=" ocupa 4 epacios, entonces empezamos a guardar el nombre sin contar esos espacios
    ID = Mid(Todo, p1 + 4, p2 - p1 - 4) 'la variable ID almacena el ID obtenido
   
    'Si lo queres cambiar podes poner:
    Antes = Mid(Todo, 1, p1 + 3) 'guardas lo que esta antes de ID
    Despues = Mid(Todo, p2) 'lo que esta despues...
    ID = "NYlOn =)" 'cambias ID
    Todo = Antes & ID & Despues 'metes todo junto en una variable
    MsgBox Todo 'aca lo mostras =P


Por si no sabes, la funcion InStr devuelve la posicion del texto que queres buscar. Por ejemplo:

Texto = "Hola como va"
MsgBox InStr(1, Texto, "como") 'me va a devolver 6



Saludos, espero que te sirva.-

sircid

Otro code, es mas o menos lo mismo que NyLoN pero NyLoN le dió mas vueltas ya que creo que no encontraba como buscar las comillas.

Private Sub Command1_Click()
Dim id As String

n = InStr(1, Text1.Text, "id=" & Chr(34), vbBinaryCompare)

' buscará en el text1 el texto " id=" "

m = InStr(n + 4, Text1.Text, Chr(34), vbBinaryCompare)
' A partir de " id=" " buscará la siguiente " (A n se le suma 4 porque es la longitud de id="). n+4 es la posición donde empieza la id.

id = Mid(Text1.Text, n + 4, m - (n + 4))
'Se escojerá la id, como hemos dicho antes n+4 es la posición donde empieza la id y m - (n+4) nos dará la longitud ya que m es la posición de la siguiente coma.

MsgBox id
End Sub


Supongamos que Text1.Text = "<player name="personaje" id="id del jugador" account="cuenta">"

NYlOn

Es lo mismo :S
Lo que hace mas largo mi codigo es que se puede cambiar el contenido de ID y mantener lo que esta adelante y atras...

Y para buscar comillas, ademas de chr(34) se puede usar """", como hice arriva  ;)

Saludos.-

Mr.Chispa

hola, estoy haciendo un juego y ya pase por lo mismo, termine usando una base de datos y levantandola con un Data, me salvo la vida y espero q te salve la tuya ;D
saludos.