Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

2 preguntas de visual basic

Estas en el tema de 2 preguntas de visual basic en el foro de Visual Basic clásico en Foros del Web. hola!! estaba haciendo una aplicacion y me surgieron dos dudas. 1- Tengo este check box Cita: Private Sub Check2_Click() Form1.Show End Sub y lo que ...
  #1 (permalink)  
Antiguo 08/10/2004, 21:32
 
Fecha de Ingreso: julio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
2 preguntas de visual basic

hola!!
estaba haciendo una aplicacion y me surgieron dos dudas.
1- Tengo este check box
Cita:
Private Sub Check2_Click()
Form1.Show
End Sub
y lo que yo quiero hacer es que al destildarlo se cierre la ventana que abre, y no se como se hace.

2- Despues tengo una aplicacion que modifica un .ini
Primero lo abro y pongo los valores del .ini en un label para lo que uso
Cita:
Private Sub Command1_Click()
Open "C:\windows\winmine.ini" For Input As 1
Do While Not EOF(1)
Input #1, nombrecogido
Input #1, direcogido
Input #1, telcogido
Input #1, cpcogido
Input #1, pobcogido
Input #1, nombrecogido
Input #1, direcogido
Input #1, telcogido
Input #1, cpcogido
Input #1, tiempo1
Input #1, tiempo2
Input #1, tiempo3
Input #1, nombre1
Input #1, nombre2
Input #1, nombre3
Label15.Caption = cckd
Label13.Caption = cckd2
Label11.Caption = cckd3
Label16.Caption = cckd4
Label14.Caption = cckd5
Label12.Caption = cckd6
Exit Sub
Loop
Close #1
End Sub
y despues quiero modificar estos valores, los valores que quiero que se cambien los pongo en un textbox, con este codigo
Cita:
Private Sub Command2_Click()
Open "C:\windows\winmine.ini" For Append As 2
Write #2,
Write #2,
Write #2,
Write #2,
Write #2,
Write #2,
Write #2,
Write #2,
Write #2,
Write #2, "Time1=" + Text5.Text
Write #2, "Time5=" + Text3.Text
Write #2, "Time3=" + Text1.Text
Write #2, "Name1=" + Text6.Text
Write #2, "Name2=" + Text4.Text
Write #2, "Name2=" + Text2.Text

Close #2
End Sub
Pero cuando ejecuto esta aplicacion me da el siguiente error "error '55' en tiempo de ejecucion: El archivo ya esta abierto.

No se que hacer probe de todo, si alguien tiene la solucion a mis problemas y me puede decir voy a estar muy agradecido...
Gracias por todo
y saludossssssss
  #2 (permalink)  
Antiguo 09/10/2004, 00:49
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Venetus:

1.-
Código:
Private Sub Check2_Click()
	If Check2.Value = vbChecked Then
		Form1.Show
	Else
		Unload Form1
	End If
End Sub
2.- Creo que el problema está en que te sales de la rutina antes de cerrar el archivo, es decir:
Código:
	Label12.Caption = cckd6
	Exit Sub		'Te sales aquí
	Loop
	Close #1		'Y nunca ejecutas esta línea
No comprendo para que es tu loop, ya que con la instrucción "Exit Sub", este sólo se ejecuta una vez. Puedes solucionarlo de varias maneras:
->Mueve la instrucción de "Close #1" antes de "Exit Sub".
->También podrías simplemente quitar la línea "Exit Sub"
->O reemplaza el bucle "Do While Not EOF(1)" por una simple condición "If Not EOF(1) then"

Saludos.
  #3 (permalink)  
Antiguo 09/10/2004, 07:40
 
Fecha de Ingreso: julio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
gracias por los datos que me diste, ahora ya no me da el error, pero igual no puedo escribir en el archivo que quiero, debe ser que estoy poniendo mal el codigo, tenes idea si este codigo esta bien?
Cita:
Private Sub Command2_Click()
Open "C:\windows\winmine.ini" For Append As 1
Write #1, "[Buscaminas]"
Write #1, "Difficulty=3"
Write #1, "Height=24"
Write #1, "Width=30"
Write #1, "Mines=10"
Write #1, "Mark=1"
Write #1, "Color=1"
Write #1, "Xpos=159"
Write #1, "Ypos=80"
Write #1, Text5.Text
Write #1, Text3.Text
Write #1, Text1.Text
Write #1, Text6.Text
Write #1, Text4.Text
Write #1, Text2.Text

Close #1
End Sub
Muchas gracias!!!!
y saludosssss
  #4 (permalink)  
Antiguo 09/10/2004, 15:58
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
Bien, no quisiera cambiarte los tantos, pero aquí te paso un código para poder leer y escribir en archivos INI sin complicarte la vida:

Código:
'declares for ini controlling
Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

'// INI CONTROLLING PROCEDURES

'reads ini string
Public Function ReadIni(Filename As String, Section As String, Key As String) As String
Dim RetVal As String * 255, v As Long
v = GetPrivateProfileString(Section, Key, "", RetVal, 255, Filename)
If v > 0 Then ReadIni = Left(RetVal, v)
End Function

'reads ini section
Public Function ReadIniSection(Filename As String, Section As String) As String
Dim RetVal As String * 255, v As Long
v = GetPrivateProfileSection(Section, RetVal, 255, Filename)
If v > 1 Then ReadIniSection = Left(RetVal, v - 1)
End Function

'writes ini
Public Sub WriteIni(Filename As String, Section As String, Key As String, Value As String)
WritePrivateProfileString Section, Key, Value, Filename
End Sub

'writes ini section
Public Sub WriteIniSection(Filename As String, Section As String, Value As String)
WritePrivateProfileSection Section, Value, Filename
End Sub
Para utilizarlo sólo escribes:

Código:
'Escritura
WriteIni "C:\Windows\winmine.ini","Buscaminas","Difficulty","3"

'Lectura

ReadIni "C:\Windows\winmine.ini","Buscaminas","Difficulty",variable
Espero te resulte util.

En cuanto al código que utilizas debería funcionar bien. En todo caso, prueba con Print #1, "......."
A ver si así te funciona, o prueba a colocar un Close antes del Open, a veces esto resuelve el problema.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #5 (permalink)  
Antiguo 09/10/2004, 17:06
 
Fecha de Ingreso: julio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
hola!! gracias por la ayuda, pero hay algo que no entiendo, como uso el codigo que me dejaste,el primero (estoy aprendiendo visual como veras...)???
Eso no se en que parte de mi formulario ponerlo.
Un saludo y gracias !!!
  #6 (permalink)  
Antiguo 09/10/2004, 19:06
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
No en un formulario, crea un nuevo módulo, el cual puedes insertar en cualquiera de tus aplicaciones.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:28.