elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ayuda para separar estas cadenas...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para separar estas cadenas...  (Leído 1,016 veces)
Charlie BoT

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Ayuda para separar estas cadenas...
« en: 30 Octubre 2020, 10:51 »

Estoy buscando la manera de ordenar una lista de servidores que aloja una web, el problema es que la manera en que se muestra esta lista es horrible, pero existe un librería que se las arregla para ordenarla a la perfección y yo realmente no he dado con la vuelta de como hacerlo.

EDITO "Se que la los campos se pueden dividir por el punto y coma ( ; ), lo que me complica es el campo del país que viene pegado con el nombre del siguiente servidor y su única separación es un espacio" Como se ve es una lista dinámica, los nombre pueden tener espacios y el país puede ser dos palabras y un espacio entre ellas!

El espacio que divide el campo del nombre con el del país lo pone la pagina.. Se podría encontrar alguna diferencia en los caracteres no imprimibles? no se me ocurre otra cosa!

Lista 1: http://kaillera.com/raw_server_list.php?version=0.9
Lista 2: http://kaillera.com/raw_server_list2.php?version=0.9

Captura de un fragmento donde aparece un server y sus datos sobresaltado!


Y una captura de como la librería que maneja un emulador logra ordenarla no se como...



Bueno sin mas que decir si alguien me pueda dar un razonamiento para este problema le estaré agradecido...

PD: (No pido código, solo ideas!)


« Última modificación: 31 Octubre 2020, 00:54 por Charlie BoT » En línea

FFernandez

Desconectado Desconectado

Mensajes: 71



Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #1 en: 30 Octubre 2020, 21:08 »

SPLIT ";"

Obtienes 3 campos por servidor a vista de pajaro.

Luego trabajas los campos  y ordena la información.


En línea

[D]aniel

Conectado Conectado

Mensajes: 141



Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #2 en: 30 Octubre 2020, 21:36 »

Hola, hacer eso es muy fácil, el caracter separador de datos es el ; (punto y coma), haciendo como dijo el compañero un Split(";") vas a poder ordenar tal como lo hace ese programa.


Saludos
En línea

Charlie BoT

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #3 en: 31 Octubre 2020, 00:57 »

Gracias por sus sugerencias, cree la pregunta minutos antes de salir a trabajar y no redacte bien el escenario, como menciono en la edición, no tengo problema en dividirla solo que el campo del país junto con el nombre del siguiente servidor se juntan y se separan por un espacio, pero tanto el país como el nombre del servidor podrían poseer espacios, así que no podría valerme de los espacios para dividirlo ya que podría romper el nombre o el país!
En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.394



Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #4 en: 31 Octubre 2020, 03:07 »

Saludos,

El HTML lo muestra de esa manera porque no interpreta los saltos de línea, sin embargo los datos en bruto son:

Citar
Ultimate Cup
151.248.126.219:27888;4/400;1;Russia Moscow
EFECTO FM - Spain Kaillera Server
78.136.107.189:27888;3/50;1;Madrid
SSB64 Australia 1
45.63.29.150:27888;0/64;0;Australia
Emuparadise America Kaillera Server
199.101.98.242:27888;10/100;4;USA
2Many server - Europe/France
91.121.3.197:27888;2/50;1;Europe

- Como puedes ver, la primera línea corresponde al Nombre del Servidor, luego inmediatamente después vienen los datos de ese Servidor, y así con los demás.

- Entonces dependerá de que revises como obtienes los datos y revisarlos para ver como trae, deberían de ser en bruto.
En línea

[D]aniel

Conectado Conectado

Mensajes: 141



Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #5 en: 31 Octubre 2020, 04:44 »

No, no es complicado, vos primero tenes que dividir por el ; y después cuando tengas que separar el pais y nombre de servidor es fácil, ya que el país siempre es una sola palabra y siempre es la primera.


Saludos
« Última modificación: 31 Octubre 2020, 04:46 por Daniel 🇦🇷 » En línea

Charlie BoT

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #6 en: 31 Octubre 2020, 05:26 »

HA bueno, gracias por la observación...
Yo hice una función para descargar la lista con webrequest  leyendo con stream y salvando en un string y al parecer que pierdo ese salto de linea y es por eso que no lo vi...

Así descargo mi lista

Código:
Private Function DescargarLista() As String()
    Dim myWebRequest As WebRequest = WebRequest.Create(laUrl)
    Dim myResponse As WebResponse = myWebRequest.GetResponse()
    Dim lector As New StreamReader(myResponse.GetResponseStream())
    Dim lista As String = lector.ReadToEnd()
    Return lista
End Function

TextBox1.Text = DescargarLista()


No sabría como evitar perder ese salto de linea, pero ya tengo una pista!
En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.394



Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #7 en: 31 Octubre 2020, 15:26 »

Si que obtienes los datos en bruto en lista, debes trabajarlo desde ahí porque si lo mandas a un TextBox simple no ves lo que deberías ver.

- Si le pones un Break Point en End Function podrás inspeccionar el contenido de lista, en bruto debe darte:

Citar
"Ultimate Cup" & vbLf & "151.248.126.219:27888;25/400;10;Russia Moscow" & vbLf & "EFECTO FM - Spain Kaillera Server" & vbLf & "78.136.107.189:27888;2/50;1;Madrid" & vbLf & "SSB64 Australia 1" & vbLf & "45.63.29.150:27888;0/64;0;Australia" & vbLf & "Emuparadise America Kaillera Server" & vbLf & "199.101.98.242:27888;10/100;4;USA" & vbLf & "2Many server - Europe/France" & vbLf & "91.121.3.197:27888;4/50;2;Europe" & vbLf & "Mortal Kombat War Room" & vbLf & "208.94.244.66:27888;1/50;0;Kansas City" & vbLf & "Phantasia" & vbLf & "145.239.124.250:27888;0/900;0;France" ...

-- Entonces trabaja directamente con lista para Separar mediante el vbLf que representa el salto de línea y luego por los ;, esto cada dos líneas.
En línea

Charlie BoT

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Ayuda para separar estas cadenas...
« Respuesta #8 en: 31 Octubre 2020, 20:11 »

Si que obtienes los datos en bruto en lista, debes trabajarlo desde ahí porque si lo mandas a un TextBox simple no ves lo que deberías ver.

- Si le pones un Break Point en End Function podrás inspeccionar el contenido de lista, en bruto debe darte:

-- Entonces trabaja directamente con lista para Separar mediante el vbLf que representa el salto de línea y luego por los ;, esto cada dos líneas.

Bueno amigo, ya con tu comentario ha sido todo... Me faltaba ese empujón para lograrlo y fuiste de gran ayuda!
Te agradezco mucho tu tiempo y muchísimas gracias!
Dejo una captura  mostrando tu consejo funcionando....

« Última modificación: 31 Octubre 2020, 20:13 por Charlie BoT » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] Ayuda! necesito programa para separar voz de musica
Multimedia
Francisko 2 1,677 Último mensaje 14 Marzo 2006, 18:31
por aNexos
Separar cadenas de un TextBox « 1 2 »
Programación Visual Basic
HJZR4 11 10,084 Último mensaje 18 Octubre 2007, 02:49
por HaDeS, -
(Solucionado) separar un string en varias cadenas (Split)
.NET (C#, VB.NET, ASP)
Eleкtro 5 2,773 Último mensaje 22 Noviembre 2012, 13:20
por Novlucker
[AYUDA] Separar array en cadenas
PHP
Graphixx 0 880 Último mensaje 8 Mayo 2013, 03:06
por Graphixx
AYUDA! solución para separar redes
Redes
juan19861 4 1,689 Último mensaje 17 Octubre 2014, 20:40
por Mr.Byte
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines