Foros del Web » Programación para mayores de 30 ;) » .NET »

[AYUDA VB .NET] Separa Cadena de cuatro en cuatro

Estas en el tema de [AYUDA VB .NET] Separa Cadena de cuatro en cuatro en el foro de .NET en Foros del Web. Buenas resulta que tengo una cadena del tipo 85,83,69,95,84,83,101,93,71,114,68,111,88,98,116,1 12,88,98,76 un array de bytes Y me gustaria poder separarla en bloques de 4 caracteres y ...
  #1 (permalink)  
Antiguo 22/09/2009, 13:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 141
Antigüedad: 16 años, 6 meses
Puntos: 2
[AYUDA VB .NET] Separa Cadena de cuatro en cuatro

Buenas resulta que tengo una cadena del tipo
85,83,69,95,84,83,101,93,71,114,68,111,88,98,116,1 12,88,98,76
un array de bytes

Y me gustaria poder separarla en bloques de 4 caracteres y guardar cada bloque en un array del tipo string de tal manera que quedase asi

String(0) = 85,83,69,95,
String(1) = 84,83,101,93,
String(2) = 71,114,68,111,
String(3) = 88,98,116,112,
String(4) = 88,98,76

Quiero destacar que la cadena de bytes puede variar de longitud
He intentado pensar variar formas pero no caigo con ninguna :S
  #2 (permalink)  
Antiguo 22/09/2009, 14:19
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: [AYUDA VB .NET] Separa Cadena de cuatro en cuatro

usa mejor tucadena.Split con la ',' como parametro y eso te devolvera tu array de N strings con cada representacion string de tu byte, y de ahi solo recorre el array de strings por bloques de 4 o que se yo.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 22/09/2009, 14:55
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: [AYUDA VB .NET] Separa Cadena de cuatro en cuatro

Yo en VB6 haría algo como esto:
Suponiendo que tu cadena de numeros se llama cadena
y quieres crear una matriz de cadenas llamada matriz()

contador=0
nuevacadena=""
for f=1 to len(cadena)
nuevacadena=nuevacadena & mid$(cadena,f,1)
if mid$(cadena,f,1)="," then
contador=contador+1
if contador=4 then
nuevacadena=nuevacadena & "/"
contador=0
end if
end if
next f
matriz=split(nuevacadena,"/")

no debe ser muy dificil de adaptar a .net
  #4 (permalink)  
Antiguo 22/09/2009, 15:05
 
Fecha de Ingreso: noviembre-2007
Mensajes: 141
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: [AYUDA VB .NET] Separa Cadena de cuatro en cuatro

Ya esta, ya lo tengo, dejo la solución:

Código:
        Dim Bloques() As String = New String(50) {}
        Dim Count As Short = 1
        Dim Array As Short = 0

        For i = 0 To Value.Length - 1
            Bloques(Array) &= Value(i) & ","
            If Count = 4 Then
                Count = 1
                Array += 1
            Else
                Count += 1
            End If
        Next
Si encontrais que se puede mejorar de alguna parte decidmelo
  #5 (permalink)  
Antiguo 23/09/2009, 07:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: [AYUDA VB .NET] Separa Cadena de cuatro en cuatro

Aquí otra opción:
Código vb.net:
Ver original
  1. Dim Bloques() As String = New String(50) {}
  2.  
  3. For i = 0 To Partes.Length \ 4 - 1
  4.     Bloques(i) = String.Join(",", Value, i * 4, 4)
  5. Next i
  6. Bloques(i) = String.Join(",", Value, i * 4, Value.Length - i * 4)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.