Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: El_Marine en 3 Octubre 2006, 04:29 am



Título: Como sumar numeros obtenidos al leer un archivo de texto? ayuda please.
Publicado por: El_Marine en 3 Octubre 2006, 04:29 am
Hola a todos,veamos, como puedo sumar numeros,tomados a leer un archivo de texto,veamos, al leer un archivo de texto obtengo esto:

501||5||||11||20||0||0||0

(Los || son retornos de carros,intros..)

Como puedo quitar los caracteres || del text?

Como podría sumar todo lo que ahi en el text, tomado del archivo?

Espero sus respuestas,saludos.



Título: Re: Como sumar numeros obtenidos al leer un archivo de texto? ayuda please.
Publicado por: _Sergi_ en 3 Octubre 2006, 06:41 am
Simplemente basta con crear una matriz con todos los números. Para ello usamos Split, pasándole como argumento los datos y el separador utilizado (En éste caso, ||)

Luego, usamos un bucle para recorrer todos los números y sumarlos.

Sería algo así, espero que no tenga ningún error.

Código
  1. Private Sub Picture1_Click()
  2. On Error Resume Next
  3. Dim ValorASumar As Integer
  4. Dim Datos As String
  5. Dim Suma As Integer
  6. 'Llenamos la variable datos
  7. Datos = "501||5||||11||20||0||0||0"
  8. 'Hacemos la matriz
  9. MatrizDatos = Split(Datos, "||")
  10. 'Bucle que recorre todos los numeros y los suma
  11. For n = 0 To UBound(MatrizDatos)
  12. Valor = MatrizDatos(n)
  13. Suma = Suma + Valor
  14. Next n
  15. 'Presentamos el resultado
  16. MsgBox "La suma es: " & Suma
  17. End Sub

Para terminar, y si por alguna razón los separadores son otros caraceres (por ejemplo intro, como has dicho) puedes sustituirlos utilizando Replace, ya que los retornos de carro, espacios, etc son caracteres normales y corrientes.

Código:
Texto = Replace(Text1.Text, Chr(13), "||")

En vez de Chr(13) también puedes usar la constante vbCrLf como es lógico.

Un saludo


Título: Re: Como sumar numeros obtenidos al leer un archivo de texto? ayuda please.
Publicado por: <--v1c1ous--> en 3 Octubre 2006, 06:46 am
¿Sumar o unir?

Como sea, por ejemplo:

Esto une la cadena de numeros:

Código:
Dim Cadena as String
Dim Separar() as String
Dim i as Interger

Cadena = "501||5||||11||20||0||0||0"
Sperar = Split(Cadena, "||")

Dim Buffer as String
For i = 0 To UBound(Separar)
'Unirlo
'Buffer = Buffer & Separar(i)
'O bien sumarlo
'Buffer = Buffer + Separar(i)
Next i

PD: Ya lo habia escrito todo _Sergi_, puse mandar y ya habias posteado :), lo posteo igual.