Autor
|
Tema: [Ayuda] Función IF (Leído 2,455 veces)
|
Servia
Desconectado
Mensajes: 346
|
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?
|
|
|
En línea
|
|
|
|
Lambda
|
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 
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
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  Saludos.
|
|
« Última modificación: 15 Diciembre 2007, 14:28 pm por Spider-Net »
|
En línea
|
|
|
|
Servia
Desconectado
Mensajes: 346
|
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
|
|
« Última modificación: 15 Diciembre 2007, 15:18 pm por Servia »
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
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.
|
|
|
En línea
|
|
|
|
Servia
Desconectado
Mensajes: 346
|
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?
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
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.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con una funcion en c
Programación C/C++
|
swagger14
|
7
|
3,504
|
22 Octubre 2011, 15:51 pm
por rir3760
|
|
|
Ayuda con una funcion, por favor
Programación C/C++
|
jet1994
|
2
|
1,901
|
24 Septiembre 2012, 02:36 am
por Don Pollo
|
|
|
Ayuda con funcion MprAdminPortDisconnect??
Programación Visual Basic
|
TrashAmbishion
|
2
|
2,237
|
29 Octubre 2012, 14:52 pm
por TrashAmbishion
|
|
|
AYUDA CON FUNCION C++
Programación C/C++
|
DVD116
|
2
|
1,778
|
25 Octubre 2018, 23:20 pm
por DVD116
|
|
|
Ayuda con función setw()
Programación C/C++
|
Pedro122h
|
3
|
4,020
|
3 Diciembre 2021, 22:01 pm
por Pedro122h
|
|