Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/02/2011, 08:31
Avatar de A.H.H
A.H.H
 
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años, 7 meses
Puntos: 4
De acuerdo Respuesta: ¿Que tiene de malo este código?

HOLA HiguaiiN

Primero te dire, que CULD no tiene razon al llamarte Bruto, ya que a Franko1809, le funciona el codigo ya que su ruta no contiene las carpetas que tu tienes en tu ruta, osea que usa solo el app.path + un archivo de texto, que NO ES LO QUE QUIERES TU, ya que en tu ejemplo usas el app.path + un directorio + subdirectorio +archivo de texto.

Aclarando esto, te dire que el error te lo tira porque primero debes crear el directorio \database y despues el subdirectorio \new_habbo, y una vez que existen estas dos carpetas ya puedes abrir el archivo de texto \hcdays.txt
Osea el error es porque no encuentra la ruta de esas dos carpetas, ya que el archivo de texto esta metido dentro del subdirectorio \new_habbo.

En vb6 se puede crear el directorio como sabemos con mkdir pero para crear un subdirectorio se complica la cosa.

hacemos MkDir (App.Path & "\database") para crear la primera carpeta.

hacemos MkDir (App.Path & "\database") & ("\new_habbo") para crear dentro el subdirectorio

ANTES de crear las carpetas deberias preguntar con DIR en el FORM_LOAD si existe la ruta, entonces compruebas que si no existe que la cree, y que si existe que lea o guarde.

PODRIA SER ESTE TU CODIGO:
Cita:
Dim ruta As String
Private Sub Form_Load()
'AL INICIAR comprobamos si existe la ruta'
ruta = (App.Path & "\database\new_habbo\hcdays.txt")
If Dir(ruta, vbArchive) = vbNullString Then
MkDir (App.Path & "\database") 'si NO existe creamos la primera carpeta'
MkDir (App.Path & "\database") & ("\new_habbo") 'y dentro la segunda carpeta'
Open ruta For Output As #1 'y dentro creamos el archivo de texto'
Print #1, "ARCHIVO VACIO"
Close #1
Else
Exit Sub 'si existe la ruta salimos del sub'
End If
End Sub

Private Sub Command1_Click()
'boton de leer'
Dim linea As String
Open ruta For Input As #1
While Not EOF(1)
Line Input #1, linea
Text1.Text = ""
If Len(Text1.Text) = 0 Then
Text1.Text = Text1.Text & linea
Else
Text1.Text = Text1.Text & vbNewLine & linea
End If
Wend
Close #1

End Sub

Private Sub Command2_Click()
'boton escribir o guardar'
Open ruta For Output As #1
Print #1, Text1.Text
Close #1

End Sub


espero hayas entendido de que al crear o leer un archivo de texto, primero la ruta debe de existir si no dara error.

salu2

Última edición por A.H.H; 12/02/2011 a las 08:37