leer un archivo txt

Iniciado por RED_HORSE, 8 Abril 2006, 01:32 AM

0 Miembros y 1 Visitante están viendo este tema.

RED_HORSE

 perdon ciclos pero es que aun no lo puedo entender ;D ;D

Cicklow

Tuve un error, osea no mire bien mi codigo y ahora cuando te lo estaba esplicando me fije bien y no funcionaria, esta es la correccion

sw1=0:sw2=0:X=1 'Iniciamos las variables
Dim Numeros(1 TO 10000) 'Creamos un vector
'rellenamos el vector (no es nesesario pero sirve
for i=1 to ubound(Numeros)
Numeros(I)=""
next

for i=1 to len(text1.text) 'desde 1 hasta lo que tiene el text1
   car = mid(text1.text,i,1) 'guardamos de a 1 caracter
   if sw1=1 then '1
     numero = numero & car     
     sw2=1
   end if           
   if sw2=1 and car=" " then '2
     Numeros(X) = Numero
     X=X+1
     numero=""
     sw1=0:sw2=0
   end if
   if car = "=" then sw1=1 '3
next

1: lo que hacemos es que si sw1=1 entonces guardamos el cntenido de car en la variable numero, concatenandola con el resto, ejemplo:
car =1
Numero = "52" 'ya iniciado
Entonces
Numero = Nunmero & Car
Numero = "521" ' Resultado final o semifinal!!!

Ponemos el sw2=1, para que deje de grabar numeros si encuentra un espacio

2- si el car=" " (un espacio) y sw2=1 entonces significa que el numero ya fue gravado en la variable Numero, lo que hacemos entonces es:
Guardamos ese numero en el vector Numeros, le sumamos unos mas a X (este sera el indice del vector), y vaciamos variables

3- verificamos si el caracter es un "=" entonces lo que hacesmos es poner sw1 en 1 para que komienze a guardar caracteres

como resultad fianl tendremos en el vector todos los numeros, y si lo keremos mostrar en un textbox seria de esta manera:

tmptxt = ""
for i=1 to ubound(Numeros)
if Numeros(I) != "" Then
   tmptxt = Numeros(I) & vbnewline & tmptxt
Else
  exit for
End if
next
text1.value = tmptxt


Saludos espero ek te ayude!!
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

#12
  gracias de nuevo cicklow ahora me quedo mas claro que nunca

lo que no me quedo muy en claro es lo de verlo en el texbox ya que esto me da error  if Numeros(I) != "" Then

  luego quite el caracter ! y me dio otro error en Text1.Value = tmptxt

PD: yo puse otro texbox con el nombre tmptxt

Cicklow

Cita de: RED_HORSE en 11 Abril 2006, 01:06 AM
  gracias de nuevo cicklow ahora me quedo mas claro que nunca

lo que no me quedo muy en claro es lo de verlo en el texbox ya que esto me da error  if Numeros(I) != "" Then

  luego quite el caracter ! y me dio otro error en Text1.Value = tmptxt

PD: yo puse otro texbox con el nombre tmptxt

con respecto al != es porke laburo con torls lenguajes jejeje reeemplaza el != por <> y listo!!!

con el tmptxt cambialo por otro nombre (que se yo: tmptxt2, u lo que kieras)

saludos!
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

  perdon cicklow te sigo al pie dela letra y aun no lo logro te paso tal cual como lo puse y fijate:






Private Sub Command1_Click()
beto.Value = tmptxt
End Sub

Private Sub Form_Load()
Open "c:\texto.txt" For Input As #1
contenido = Input(LOF(1), 1)
Close
Text1.Text = contenido

sw1 = 0: sw2 = 0: X = 1 'Iniciamos las variables
Dim Numeros(1 To 10000) 'Creamos un vector
'rellenamos el vector (no es nesesario pero sirve
For I = 1 To UBound(Numeros)
Numeros(I) = ""
Next
'**************************************************
For I = 1 To Len(Text1.Text) 'desde 1 hasta lo que tiene el text1
   car = Mid(Text1.Text, I, 1) 'guardamos de a 1 caracter
   If sw1 = 1 Then '1
     numero = numero & car
     sw2 = 1
   End If
   If sw2 = 1 And car = " " Then '2
     Numeros(X) = numero
     X = X + 1
     numero = ""
     sw1 = 0: sw2 = 0
   End If
   If car = "=" Then sw1 = 1 '3
Next
'***********************************************
Dim tmptxt
tmptxt = ""
For I = 1 To UBound(Numeros)
If Numeros(I) <> "" Then
   tmptxt = Numeros(I) & vbNewLine & tmptxt
Else
  Exit For
End If
Next

End Sub

Cicklow

Cita de: RED_HORSE en 11 Abril 2006, 16:55 PM
  perdon cicklow te sigo al pie dela letra y aun no lo logro te paso tal cual como lo puse y fijate:






Private Sub Command1_Click()
beto.Value = tmptxt
End Sub

Private Sub Form_Load()
Open "c:\texto.txt" For Input As #1
contenido = Input(LOF(1), 1)
Close
Text1.Text = contenido

sw1 = 0: sw2 = 0: X = 1 'Iniciamos las variables
Dim Numeros(1 To 10000) 'Creamos un vector
'rellenamos el vector (no es nesesario pero sirve
For I = 1 To UBound(Numeros)
Numeros(I) = ""
Next
'**************************************************
For I = 1 To Len(Text1.Text) 'desde 1 hasta lo que tiene el text1
   car = Mid(Text1.Text, I, 1) 'guardamos de a 1 caracter
   If sw1 = 1 Then '1
     numero = numero & car
     sw2 = 1
   End If
   If sw2 = 1 And car = " " Then '2
     Numeros(X) = numero
     X = X + 1
     numero = ""
     sw1 = 0: sw2 = 0
   End If
   If car = "=" Then sw1 = 1 '3
Next
'***********************************************
Dim tmptxt
tmptxt = ""
For I = 1 To UBound(Numeros)
If Numeros(I) <> "" Then
   tmptxt = Numeros(I) & vbNewLine & tmptxt
Else
  Exit For
End If
Next

End Sub

si no declaramos tmptxt como global no funcionara.
mejoremoslo!::


Private Sub Command1_Click()
Open "c:\texto.txt" For Input As #1
  contenido = Input(LOF(1), 1)
Close
Text1.Text = contenido

sw1 = 0: sw2 = 0: X = 1 'Iniciamos las variables
Dim Numeros(1 To 10000) 'Creamos un vector
'rellenamos el vector (no es nesesario pero sirve
For I = 1 To UBound(Numeros)
Numeros(I) = ""
Next
'**************************************************
For I = 1 To Len(Text1.Text) 'desde 1 hasta lo que tiene el text1
   car = Mid(Text1.Text, I, 1) 'guardamos de a 1 caracter
   If sw1 = 1 Then '1
     numero = numero & car
     sw2 = 1
   End If
   If sw2 = 1 And car = " " Then '2
     Numeros(X) = numero
     X = X + 1
     numero = ""
     sw1 = 0: sw2 = 0
   End If
   If car = "=" Then sw1 = 1 '3
Next
'***********************************************
Dim tmptxt 'en el anterior si la colokas aka a la variable
tmptxt = "" 'la lee el evento load nada mas!!!!!! colokalas     
                 'colokalas en la general para que te la lean todos!
For I = 1 To UBound(Numeros)
If Numeros(I) <> "" Then
   tmptxt = Numeros(I) & vbNewLine & tmptxt
Else
  Exit For
End If
Next

beto.Value = tmptxt

End Sub

Te digo que este script (por asi decirlo), no lo he provado porke donde estoy no tengo el VB. cualkier cosa avisame!!!

podes usar el script anterior si declaras "Dim tmptxt" en la general!!, y asi te ahorras de amontonar todo!
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

  Me da un error en esta parate:
No tengo ni la minima idea de por que ya que ahora puse tosa editadas las variables fijate



Cicklow

por una sensilla razon... el texbox no tiene la propiedad value (la tiene pero es  de solo lectura), asike usa
beto.text = ?
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

  No amigo creo que esto ya es en vano ahora no da mas ningun error pero  no muestra ningun numero.
  te pongo de nuevo los codigos:

Private Sub Command1_Click()
beto.Text = tmptxt
End Sub
Private Sub Form_Load()
Open "c:\texto.txt" For Input As #1
contenido = Input(LOF(1), 1)
Close
Text1.Text = contenido

sw1 = 0: sw2 = 0: X = 1 'Iniciamos las variables
Dim Numeros(1 To 10000) 'Creamos un vector
'rellenamos el vector (no es nesesario pero sirve
For I = 1 To UBound(Numeros)
Numeros(I) = ""
Next
'**************************************************
For I = 1 To Len(Text1.Text) 'desde 1 hasta lo que tiene el text1
   car = Mid(Text1.Text, I, 1) 'guardamos de a 1 caracter
   If sw1 = 1 Then '1
     numero = numero & car
     sw2 = 1
   End If
   If sw2 = 1 And car = " " Then '2
     Numeros(X) = numero
     X = X + 1
     numero = ""
     sw1 = 0: sw2 = 0
   End If
   If car = "=" Then sw1 = 1 '3
Next
'***********************************************
Dim tmptxt
tmptxt = ""
For I = 1 To UBound(Numeros)
If Numeros(I) <> "" Then
   tmptxt = Numeros(I) & vbNewLine & tmptxt
Else
  Exit For
End If
Next

End Sub

Cicklow

aver provemos esto pone un punto de corte en
tmptxt = ""
y fijate el contenido del array Numeros()

fijate si tiene algo

podes hacer que te los muestre en la ventana de inmediato haci:

msgbox Numeros(1)

si te muestra algo es que se guardan los numeros pero sino es que hay otro problema...
hoy me llevo el codigo este y lo pruevo en mi casa!!
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio