leer un archivo txt

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

0 Miembros y 3 Visitantes están viendo este tema.

RED_HORSE

   hola estoy intentando hacer un proyecto y  lo que queria preguntarles es si alguien sabe como hacer esto:

    Bueno tengo un archivo txt con muchas lineas de texto de los cuales yo solo quiero obtener alguna parte de ese texto que es solo la parte que contiene los numeros.
    Seria algo asi

Volt = 12244 v voltage expl...................

Amp = 4578 A  amperaje dado en mili...............

Tem = 4785 F   farenjei en lo.....................

amb = 7889 E   fdfsf ...................

etc.

etc.

etc

  yo quiero que mi aplicasion solo lea los numeros que estan en rojo aqui en mi ejemplo y los coloque en una variable.


   Intentando por alli trate de hacer con esta forma para poder leer el txt y solo leia la primera linea y lo demas no :-(

solo leia
Volt = 12244 v voltage expl...................
 

Private Sub Form_Load()
Dim a As String

If a = "" Then
    Open "c:\texto.txt" For Input As #1
    Input #1, a
    Close #1
End If

Text1.Text = a
End Sub


  bueno espero que alguien me pude ayudar se lo agradecería mucho ;D ;D ;D ;D

Cicklow


sw1=0:sw2=0
open "archivo.txt" for input as #1
line input #1, contenido
for i=1 to len(contenido)
   car = mid(contenido,i,1)
   if car="=" and sw1=0 then
     numero = numero & car
     sw2=1
   end if
   if sw2=1 and car=" " then
     open "numeros.txt" for append as #2
       print #2, numero
     close
     numero=""
     sw1=0:sw2=0
     exit for
   end if
next
close


espero que te ayude, este ejemplo no fue provado con el vb ya que no lo tengo aka
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

.:CorTeX:.

Miralo:

Private Sub Form_Load()
Dim file_data$
Open "C:\Archivo.txt" For Append As #1
While Not EOF(1)
Print #1, file_data$
Text1.text=Text1.text & file_data$ & vbNewLine
End Sub
Orgullosamente Colombiano



Cicklow

Cita de: .:CorTeX:. en  8 Abril 2006, 03:09 AM
Miralo:

Private Sub Form_Load()
Dim file_data$
Open "C:\Archivo.txt" For Append As #1
While Not EOF(1)
Print #1, file_data$
Text1.text=Text1.text & file_data$ & vbNewLine
End Sub


tu programa tiene un error, seria haci para que funcione:
Private Sub Form_Load()
Dim file_data$
Open "C:\Archivo.txt" For Append As #1
While Not EOF(1)
Print #1, file_data$
Text1.text=Text1.text & file_data$ & vbNewLine
Wend
End Sub
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

 si no me equivoco eso no sirve para leer un archivo sino par escribir en el y cosa que yo no quiero hacer ;D
Cita de: Cicklow en  8 Abril 2006, 15:37 PM
Cita de: .:CorTeX:. en  8 Abril 2006, 03:09 AM
Miralo:

Private Sub Form_Load()
Dim file_data$
Open "C:\Archivo.txt" For Append As #1
While Not EOF(1)
Print #1, file_data$
Text1.text=Text1.text & file_data$ & vbNewLine
End Sub


tu programa tiene un error, seria haci para que funcione:
Private Sub Form_Load()
Dim file_data$
Open "C:\Archivo.txt" For Append As #1
While Not EOF(1)
Print #1, file_data$
Text1.text=Text1.text & file_data$ & vbNewLine
Wend
End Sub


RED_HORSE

 esta parte del codigo de ciclos tampoco nunjca lo pedi :-\

lo que yo quiero hacer es que primero me abra todo ese texto que estaba en un txt y lo pueda leer entero en text1.text y de alli resin que tome eso datos numericos lo meta en diferentes varieables para luego utilizarlo en unas ecuasiones que tengo que hacer ;D ;D ;D



open "numeros.txt" for append as #2
       print #2, numero
     close
     numero=""
     sw1=0:sw2=0
     exit for
   end if
next
close

Cicklow

ok,..........
pero kon lo que te di ni una idea te das.... no lo podes hacer?????

es facil:


open "file.txt" for input as #1
contenido =  input(lof(1),1)
close
Text1.text = Contenido


Ahora teens que recorrer el text1, para ver lo que tenes!!! y meter los numeros en variables!!!


sw1=0:sw2=0:X=1
Dim Numeros(1 TO 10000)
for i=1 to len(text1.text)
   car = mid(text1.text,i,1)
   if car="=" and sw1=0 then
     numero = numero & car
     sw2=1
   end if
   if sw2=1 and car=" " then
     Numeros(X) = Numero
     X=X+1
     numero=""
     sw1=0:sw2=0
   end if
next

Espero que te sea de ayuda, y que prendas la lamparita!
www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio

RED_HORSE

#7
   bueno gracias cicklow  mira eso de leer el txt y ponerlo en un texbox ya lo hice y funciona y mira yo lo hice de este otra forma pero es casi iguak

Private Sub Command1_Click()
Dim strName As String, strFile As String, strTemp As String
On Error GoTo ErrHandler
strName = InputBox("Filename:")
Open strName For Input As #1
strFile = ""
Do Until EOF(1)
Line Input #1, strTemp
strFile = strFile & strTemp & vbCrLf
Loop
Text1.Text = strFile
Close #1
ErrHandler:
End Sub


Pero de lo otro estoy tratando de entender y lo que estendi fue esto:

  sw1=0:sw2=0:X=1    // Definimos cada valor
Dim Numeros(1 TO 10000) //Ponemos la variable numeros del 1 al 10000
for i=1 to len(text1.text)  //leemos lo que tiene el texbox
   car = mid(text1.text,i,1) // Lo colocamos en la variable car
   if car="=" and sw1=0 then //Si car es igual a = y sw1=0 entonces lavariable numero sera igual a numero y a car y sw2=1
     numero = numero & car
     sw2=1
   end if
   if sw2=1 and car=" " then  // Si sw2=1 y car es igual a nada entonces numero(x) ba a ser igual a Numero y x sera igual a x +1 y numero igual a nada y sw1 y sw2 igual a cero
     Numeros(X) = Numero
     X=X+1     
     numero=""
     sw1=0:sw2=0 
   end if
next

Y DE QUE ME SERVIRIA TODO ESTO????

.:CorTeX:.

Si, disculpame, lo de el error es porque no hice terminar el bucle osea que me falto el Wend.

Gracias Cicklow Por la correccion ;)
Orgullosamente Colombiano



RED_HORSE

 POR EJEMPLO SI YO PUSIERA UN BOTN CON ESTE CODIGO NO ME MOSTRARIA NINGUN NUMERO QUE APARECE EN EL TEXTBOX

Private Sub Command1_Click()
Text2.Text = numero
End Sub