Hola, estoy intentando hacer que si en un archivo pone x y un usuario escribe x se abrá un form y que de lo contrario salga una pantallita diciendo error.
Private Sub Command1_Click()
If FSO.OpenTextFile("C:\programa\error\errorlog.txt").ReadAll <= Text1.Text = True Then
MsgBox "Error"
End
End If
Form2.Show
End Sub
Que hago mal?
Cita de: Servia en 15 Diciembre 2007, 12:25 PM
Hola, estoy intentando hacer que si en un archivo pone x y un usuario escribe x se abrá un form y que de lo contrario salga una pantallita diciendo error.
Private Sub Command1_Click()
If FSO.OpenTextFile("C:\programa\error\errorlog.txt").ReadAll <= Text1.Text = True Then
MsgBox "Error"
End
End If
Form2.Show
End Sub
Que hago mal?
Private Sub Command1_Click()
If FSO.OpenTextFile("C:\programa\error\errorlog.txt").ReadAll = Text1.Text Then
MsgBox "Error"
End
End If
Form2.Show
End Sub
prueba asi ;D :xD
Pues principalmente estás abriendo el Form2 siempre, porque secuencialmente primero lees el archivo y luego abres el form, no bifurcas la opción, para eso tienes que usar un if alternativo.
Me equivoqué, porque vi que cierras el programa dentro de ese if.. pero bueno como te he puesto funciona xD
Yo haría algo así:
Private Sub Command1_Click()
Dim Pass As String
Dim Temp As String
nFic = FreeFile
Open "C:\a.txt" For Input As nFic
Do Until EOF(nFic)
Input #nFic, Temp
Text1.Text = Text1.Text + Temp
Pass = Text1.Text
Loop
Close nFic
If Pass = "x" Then
Form2.Show
Else
MsgBox "Error, vuelva a intentarlo", vbCritical
End
End If
End Sub
Metes un TextBox y ya está, funciona perfectamente ;D
Saludos.
Pero me explicas el código que si no no aprendo nada ?
Aparte me sigue dando error :S Al escribir en el textbox y presionar el botón sale el mensaje de error y puedo ver como se le añaden + carácteres a lo escrito [ÿþgg] :S
Aunque si quito el + temp , porque no se de que sirve , me funciona pero entonces veo lo de If Pass = "x" Then , de que me sirve abrir el archivo si aquí pongo eso? :S aquí no tendría que poner la url del archivo y que lo lea?
Private Sub Command1_Click()
Dim Pass As String
Dim Temp As String
nFic = FreeFile
Open "C:\a.txt" For Input As nFic
Do Until EOF(nFic)
Input #nFic, Temp
Text1.Text = Text1.Text + Temp
Pass = Text1.Text
Loop
Close nFic
If Pass = "x" Then
Form2.Show
Else
MsgBox "Error, vuelva a intentarlo", vbCritical
End
End If
End Sub
Buenas amigo, pues mira principalmente decirte que el código de Lambda es más simple y también funciona, pero de todas formas yo te explico si quieres el que yo puse:
Private Sub Command1_Click()
Dim Pass As String 'variable de tipo cadena que almacena el password
Dim Temp As String 'variable tipo cadena que va almacenando datos del fichero que se importa
nFic = FreeFile 'liberamos el canal del fichero nFic
Open "C:\a.txt" For Input As nFic 'Abrimos el archivo, AQUÍ ES DONDE PONES LA RUTA
Do Until EOF(nFic) ' Esto es un bucle que lee el fichero hasta que llegue al final del fichero
Input #nFic, Temp ' Importas lo que va leyendo el fichero a la variable temp
Text1.Text = Text1.Text + Temp ' por eso aqui hacemos text1.text = text1.text + temp (lo importado del fichero)
Loop
Close nFic
Pass=Text1.Text ' Ahora lo que hemos importado del fichero lo almacenamos en la variable Pass
If Pass = "x" Then ' Y ahora si el pass coincide con lo introducido por el usuario, en este caso "x"
Form2.Show ' entonces mostramos el form2
Else
MsgBox "Error, vuelva a intentarlo", vbCritical 'sino tiramos error y cerramos el programa
End
End If
End Sub
Espero que más o menos lo entiendas, y si me equivoqué en cualquier cosa espero que alguien me corrija. Y de todas formas como ya te dije el código de Lambda es más simple y funciona perfectamente aunque este también funciona sólo que es más largo, bueno espero que te sea de ayuda al menos y aprendas algo nuevo ;)
Saludos.
El de lambda no funciona porque tmb lo probe yo antes, si fuencionase no habría psoteado pidiendo ayuda.
Pero y si el texto que quiero que mire si concide [en este caso x] se encuentra en otro fichero?
Pues puedes cambiar la ruta, mira:
Private Sub Command1_Click()
Dim Pass, ruta As String
Dim Temp As String
ruta = "C:\LOKEKIERAS" ' AKI PONES LA RUTA DEL ARCHIVO QUE QUIERAS COMPROBAR
nFic = FreeFile
Open ruta For Input As nFic
Do Until EOF(nFic)
Input #nFic, Temp
Text1.Text = Text1.Text + Temp
Loop
Close nFic
Pass = Text1.Text
If Pass = "x" Then ' ESTA X LA SUSTITUYES POR LO QUE QUIERAS QUE COMPRUEBE QUE PONE EN EL FICHERO
Form2.Show
Else
MsgBox "Error, vuelva a intentarlo", vbCritical
End
End If
End Sub
Y ya está, así de simple.