Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/08/2007, 04:37
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: problemas con string

Hola marko249:

A ver si esto te sirve y da el resultado que quieres. Yo lo he probado y en principio va bien.

De primeras, lo que he hecho es estructurar de otra manera algo mejor la cadena a dividir, es decir:

Tu cadena era así:
Código:
AB : 978794 Checkpoint : S DetailPickup Date : 04/05/2006Pick Time : 20:21G Offset (PU) : 08Pick Ro : WA
Yo la he definido de esta forma:
Código:
AB : 978794#Checkpoint : S Detail#Pickup Date : 04/05/2006#Pick Time : 20:21#G Offset (PU) : 08#Pick Ro : WA
Si te fijas, he añadido un carácter # que hará de separador entre las partes. Luego, para dividir estas partes, a través de este separador (puede ser este carácter ó el que quieras, ó un espacio en blanco,...), se usará el método Split().

No sé en qué lenguaje estás programando. Yo lo he hecho en C# con ASP.NET 2.0 .

Bueno ahí va la cosa:

- en la parte de código del archivo (si es en C# en el .cs // si es en VB en el .vb)
Código:
...

    string el_String = "";//DEFINIDA AL PRINCIPIO DEL ARCHIVO ACCESIBLE PARA TODAS LAS FUNCIONES

    protected void Page_Load(object sender, EventArgs e)
    {
        
    }

    protected void obtenerString()
    {
        //AQUÍ, OBTENIENDO EL STRING BIEN POR CONSULTA SQL Ó COMO SEA
        //...
        el_String = "AB : 978794#Checkpoint : S Detail#Pickup Date : 04/05/2006#Pick Time : 20:21#G Offset (PU) : 08#Pick Ro : WA";
    }

    protected string presentarString()
    {
        //LLAMANDO PARA OBTENER EL STRING
        obtenerString();

        //ARRAY QUE CONTENDRÁ CADA UNA DE LAS
        //PARTES DESEADAS DEL STRING PASADO
        string[] las_Partes;
        //SI SON SIEMPRE 7 PARTES
        //SE DEFINE EL ARRAY CON ESTA LONGITUD
        las_Partes = new string[7];

        //PARA DIVIDIR EL STRING, SE USA EL MÉTODO Split()
        //QUE NECESITA UN SEPARADOR, POR EJEMPLO, EL CARÁCTER #
        //PUEDE SER OTRO Ó INCLUSO UN ESPACIO
        //ENTONCES, SE DEFINE EL CARÁCTER SEPARADOR DESEADO
        char[] separador = { '#' };

        //AHORA SE EJECUTA LA DIVISIÓN Y SE INSERTA
        //CADA PARTE EN CADA LUGAR DEL ARRAY
        las_Partes = el_String.Split(separador);

        //POR ÚLTIMO, RECORRIENDO EL ARRAY
        //SE PRESENTARÁN LOS ELEMENTOS
        //TAL Y COMO SE QUIERA
        string el_String_Final = "";

        for (int x = 0; x < las_Partes.Length; x++)
        {
            el_String_Final += "<br />" + las_Partes[x];
        }

        return el_String_Final;
    }

...

Luego, para mostrar todo por pantalla, solamente hay que llamar a que se escriba el resultado de la función necesaria, desde la parte de diseño .aspx:
Código HTML:
<%= presentarString()%> 
Tal y como está, por pantalla, el string inicial que es

Código:
AB : 978794#Checkpoint : S Detail#Pickup Date : 04/05/2006#Pick Time : 20:21#G Offset (PU) : 08#Pick Ro : WA
tendría que salirte así:

Código:
AB : 978794
Checkpoint : S Detail
Pickup Date : 04/05/2006
Pick Time : 20:21
G Offset (PU) : 08
Pick Ro : WA
Si quieres dar un último toque y que los ":" se junten al texto de cada línea, entonces reemplaza esta línea

Código:
            el_String_Final += "<br />" + las_Partes[x];
por esta otra

Código:
            el_String_Final += "<br />" + las_Partes[x].Replace(" : ", ": ");
Ahora, por pantalla, te quedará finalmente así:

Código:
AB: 978794
Checkpoint: S Detail
Pickup Date: 04/05/2006
Pick Time: 20:21
G Offset (PU): 08
Pick Ro: WA
Espero que con todo esto, te solucione la papeleta. Agur...
__________________
Saludos,

zacktagnan.
=================================================