Visual Basic para Aplicaciones - leer cadena

Life is soft - evento anual de software empresarial
   
Vista:

leer cadena

Publicado por vedder (2 intervenciones) el 02/11/2007 12:43:19
Explico que tengo que hacer…

De la cadena de caracteres , tengo que extraer 12 valores que ahy se encuentra.

Los primero 8 caracteres son fijos.4 son datos y los otros 4 son espacios. De los 12 valores solo me sirve el 8, y la suma del 9+10+11. El gran problema es la cadena es variable, es decir los valores que necesito no se encuentran en un espacio determinado ni se sabe cuantos caracteres son , sino que en distintas partes, pero si en el mismo orden

Lo unico claro que hay es que después de un punto siempre se toman los dos caracteres siguientes.

Entonces, lo que estoy creando es que un puntero empieze a leerme del espacio 9, hasta que encuentre un punto,
Luego ese temporal lo leo denuevo y le pregunto, si empieza con ceros, es otro valor, si es distinto de cero (num o -) dejarlo como valor entero., luego grabar y decirle que busque denuevo otro punto.

A todo esto hay que ir incrementando el valor para cachar cuando es el valor 8 y grabarlo en la celda, , tambien hacer la suma de los otros valores y ponerlo en otra celda.

Se entiende la problemática??????

plis, necesito saber como hago eso, que controles o instrucciones son maas adecuado, plis ayudaaa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:leer cadena

Publicado por JuanC (243 intervenciones) el 02/11/2007 14:00:22
si explicas un poco mejor y pones un ejemplo quizá pueda ayudarte...

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:leer cadena

Publicado por vedder (2 intervenciones) el 02/11/2007 16:33:16
te explico...tengo la siguiente cadena

3.00143.11003.00143.11003.00

esta es parte de mi cadena, tengo 4 ciclos que son separados por 4 espacios.

Yo no se el largo de mi cade, solo los ciclos, entonces, .. de esta ciclo de cadena, tengo que sacar doce valores que estabn ahy, son de largo variable y pueden ser ceros, numeros o empezar con signo negativo
en este caso mis valores son:

el unico dato que se que despues de un decimal son los dos caracteres siguientes parte de una valor.

valor1=3.00
valor2=143.11
valor3=0
valor4=0
valor5=143.11
valor6=0
valor7=0
valor8=0
valor9=3.00

algo asi. entonces yo estoy recorriendo hasta encontrar un punto , luego lo paso a un temporal para analizar si empieza con cero o con otro numero..si es asi paasa a ser otro valor, sino lo toma completo como un valor.

Luego el valor 8 lo tengo que colocar en una celda de excel, y la suma del 9+10+11 en otra...

se entiede ahoa?????????????????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:leer cadena

Publicado por JuanC (243 intervenciones) el 03/11/2007 10:59:16
Creo que esto funciona...

Option Explicit

'//By JuanC - Nov. 2007

Sub test()
Dim sCad$, t$, sFin$
Dim lCount&, i&, Suma!
On Error Resume Next
sCad = "3.00143.11003.00143.11003.003.00143.11"
i = InStr(1, sCad, ".")
Do While i > 0
t = t & Mid(sCad, 1, i + 2) & "|"
sCad = Right(sCad, Len(sCad) - i - 2)
i = InStr(1, sCad, ".")
lCount = lCount + 1
Loop
For i = 0 To lCount - 1
sCad = Split(t, "|")(i)
If Mid(sCad, 1, 1) = "0" Then
If Mid(sCad, 2, 1) = "0" Then
sFin = sFin & "0|0|" & Mid(sCad, 3, 4) & "|"
Else
sFin = sFin & "0|" & Mid(sCad, 2, 5) & "|"
End If
Else
sFin = sFin & sCad & "|"
End If
Next
sFin = Replace(sFin, ".", ",")
Suma = CSng(Split(sFin, "|")(8)) + CSng(Split(sFin, "|")(9)) + CSng(Split(sFin, "|")(10))
MsgBox "Valor 8: " & Split(sFin, "|")(7) & vbCrLf & _
"Suma 9+10+11: " & Suma
End Sub

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:leer cadena

Publicado por Coquito (67 intervenciones) el 06/11/2007 14:46:49
Un saludo...
tu solucion interesante...
Ayuda en este problema...
Como leer las posiciones de cambio de font, color, ... etc... en una cadena...
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar