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
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
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
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
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
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
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!
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????
Si, disculpame, lo de el error es porque no hice terminar el bucle osea que me falto el Wend.
Gracias Cicklow Por la correccion ;)
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
perdon ciclos pero es que aun no lo puedo entender ;D ;D
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!!
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
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!
perdon cicklow te sigo al pie dela letra y aun no lo logro te paso tal cual como lo puse y fijate:
(http://img143.imageshack.us/img143/8122/trabajo5xy.png)
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
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:
(http://img143.imageshack.us/img143/8122/trabajo5xy.png)
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!
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
(http://img57.imageshack.us/img57/2848/error5mt.jpg)
por una sensilla razon... el texbox no tiene la propiedad value (la tiene pero es de solo lectura), asike usa
beto.text = ?
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
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!!
no me muestra nada espero que me ayudes amigo eres mi dios ;D ;D ;D ;D ;D
weno fiera poneme unas velitas!!!!! jejejeje no mentira:
(http://img20.imageshack.us/img20/7545/clipboard5sg.jpg)
Private Sub Form1_Load()
Open "c:\texto.txt" For Input As #1
contenido = Input(LOF(1), 1)
Close
Text1.Text = contenido
End Sub
Private Sub Command1_Click()
sw1 = 0: sw2 = 0: X = 1 'Iniciamos las variables
sw3 = 0
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)
car = Mid(Text1.Text, I, 1)
If sw1 = 1 Then
numero = numero & car
sw2 = 1
End If
If sw2 = 1 And car = " " Then
Numeros(X) = Trim(numero)
X = X + 1
numero = ""
sw1 = 0: sw2 = 0: sw3 = 0
End If
If car = " " And sw3 = 1 Then sw1 = 1
If car = "=" And sw3 = 0 Then sw3 = 1
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
Text2 = tmptxt
End Sub
gracias amigo me sacaste un peso mas de ensima che ;D ;D ;D ;D ;D