Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/04/2010, 11:38
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Modificar Cadena

No es muy dificil.
Se puede hacer mejor, pero si la cadena no es muy larga puede servir esto:

Código vb:
Ver original
  1. Function Comprime2(byVal Cadena As String) As String
  2.   Dim Matriz1() As String
  3.   Dim Matriz2() As String
  4.   Dim Matriz1Temp() As String
  5.   Dim Matriz2Temp() As String
  6.   Dim F As Long
  7.   Matriz1 = Split(Cadena, ";")
  8.   ReDim Matriz2(0)
  9.   Matriz2(0) = Matriz1(0)
  10.   For F = 1 To UBound(Matriz1)
  11.     Matriz1Temp = Split(Matriz1(F), ":")
  12.     Matriz2Temp = Split(Matriz2(UBound(Matriz2)), ":")
  13.     If Matriz1Temp(0) = Matriz2Temp(0) _
  14.     And Matriz1Temp(1) / Matriz1Temp(3) = Matriz2Temp(1) / Matriz2Temp(3) _
  15.     And Matriz1Temp(2) / Matriz1Temp(3) = Matriz2Temp(2) / Matriz2Temp(3) Then
  16.       Matriz2(UBound(Matriz2)) = Matriz2Temp(0) & ":" _
  17.       & Val(Matriz1Temp(1)) + Val(Matriz2Temp(1)) & ":" _
  18.       & Val(Matriz1Temp(2)) + Val(Matriz2Temp(2)) & ":" _
  19.       & Val(Matriz1Temp(3)) + Val(Matriz2Temp(3))
  20.     Else
  21.       ReDim Preserve Matriz2(UBound(Matriz2) + 1)
  22.       Matriz2(UBound(Matriz2)) = Matriz1(F)
  23.     End If
  24.   Next F
  25.   Comprime2 = Join(Matriz2, ";")
  26. End Function

Saludos

PD: La proxima vez lo llamo "Function PKJZip"
Ten en cuenta que siguen sumandose los valores ya sumados, como en la anterior función.
Esta línea:
1:11:26:1;1:22:60:1;1:24:54:3;1:8:18:1;1:8:18:1;1: 8:18:1
Devuelve:
1:11:26:1;1:22:60:1;1:48:108:6
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 03/04/2010 a las 11:56