https://foro.gambas-es.org/viewtopic.php?f=5&t=2127&p=12291#p12291
-----------------------------------
Shell
Domingo, 15 Enero 2012, 11:08

Re: Programa Simple: Crea Una Propiedad De Una Clase
-----------------------------------
Otro Ejemplo:

 [img]http://foro.gambas-es.org/files/images/768/operaarchivos.png[/img] 

Ejemplos que por muy basicos que nos puedan parecer.En el momento que los hace
para practicar te olvidas de ellos y luego ayudan a mas miembros de la comunidad.

Formulario principal:
[code linenumbers=false syntax=gambas]
PUBLIC SUB Form_Open()
  ME.Center()
  ME.Caption = "Ejemplo de instrucciones para manejo de ficheros"
END

PUBLIC SUB restaurar()  
  txtaSalida.Text = ""
  Variables.contenido = ""    
END

PUBLIC SUB BtnAccess_Click()
  restaurar()
  PractAccess.miaccess()
  txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnDir_Click()
  restaurar()
  PractDir.midir()
  txtaSalida.Text = Variables.contenido  
END

PUBLIC SUB BtnEof_Click()
  DIM archivo AS String
    
  archivo = User.Home &/ "pruebaarchivo.txt"
  restaurar()
  PractEof.mieof(archivo)
  txtaSalida.Text = Variables.contenido
END


PUBLIC SUB BtnExist_Click()
  DIM archivo AS String
  
  archivo = User.Home &/ "pruebaarchivo.txt" 'Este archivo existe,llamara al Procedimiento anidado PractEof
  'archivo =User.home &/ "noexisto.txt"
  restaurar()
  PractExist.miexist(archivo)
  txtaSalida.Text = Variables.contenido  
END

PUBLIC SUB BtnIsDir_Click()
  DIM nombreCarpeta AS String
  
  'nombreCarpeta = user.home &/ "noexisto" 'Este directorio no existe
  nombreCarpeta = User.Home &/ "Prueba"    'Este directorio existe
  restaurar()
  PractIsDir.miIsDir(nombreCarpeta)
  txtaSalida.Text = Variables.contenido  
  
END

PUBLIC SUB BtnStat_Click()
  DIM nombre AS String
  
  nombre = User.Home &/ "Prueba/JuegosDOS"
  restaurar()
  PractStat.miStat(nombre)
  txtaSalida.Text = Variables.contenido
END

PUBLIC SUB BtnTemp_Click()

  restaurar()
  PractTemp.mitemp()
  txtaSalida.Text = Variables.contenido
  
END


PUBLIC SUB BtnOpenClose_Click()
  DIM nombrearchivo AS String
  
  nombrearchivo = User.Home &/ "pruebaarchivo.txt"
  restaurar()
  PractOpenClose.miopenclose(nombrearchivo)
  txtaSalida.Text = Variables.contenido 
END
[/code]

Los diferentes modulo para ver que hace cada instrucción:

[code linenumbers=false syntax=gambas]
PUBLIC SUB miaccess()
   DIM archivo AS String 
   
  'La instrucción acces determina si un fichero es accesible o no.
  'Parece similar a ¿Exist?
  
  archivo = User.Home &/ "pruebaarchivo.txt"  
  Variables.contenido = Variables.contenido & "El archivo " & archivo & " " & CompruebaSiNo(Access(archivo)) & "\n"
  
  archivo = User.Home &/ "dragon64.txt"
  Variables.contenido = Variables.contenido & "El archivo " & archivo & " " & CompruebaSiNo(Access(archivo)) & "\n"
    
END


PUBLIC FUNCTION CompruebaSiNo(sino AS Boolean) AS String
DIM probar AS String

  IF sino = TRUE THEN 
    probar = "es accesible"
  ELSE IF sino = FALSE THEN 
    probar = "no es accesible"
  ENDIF 
  RETURN probar
  
END
-------------------
PUBLIC SUB midir()
DIM directorio AS String
DIM fichero AS String

directorio = User.Home
FOR EACH fichero IN Dir(directorio, "*.*").Sort()
  Variables.contenido = Variables.contenido & fichero & "\n"
NEXT 

END
-------------------
PUBLIC SUB mieof(nomarchivo AS String) 'nombarchivo es el nombre del archivo
DIM hFile AS File         'Nombre del archivo
DIM linea AS String       'Cada linea

OPEN nomarchivo FOR READ AS #hFile  
WHILE NOT Eof(hFile)
  LINE INPUT #hFile, linea
  Variables.contenido = Variables.contenido & linea & "\n"
WEND 
CLOSE #hFile
END
----------------------
PUBLIC SUB miexist(nombarchivo AS String)
  IF Exist(nombarchivo) THEN
    Variables.contenido = "El fichero: " & nombarchivo & "  existe." & "\n"
    Variables.contenido = Variables.contenido & "El contenido es: " & "\n"
    PractEof.mieof(nombarchivo)
  ELSE 
    Variables.contenido = "El fichero: " & nombarchivo & " no existe."
  ENDIF 
END
------------------------
PUBLIC SUB miIsDir(directorio AS String)
  DIM existedirectorio AS Boolean
    
  existedirectorio = IsDir(directorio)
  IF existedirectorio = TRUE
    Variables.contenido = "El directorio existe"
  ELSE 
    Variables.contenido = "El directorio no existe"
  ENDIF  
  
END
---------------------------
PUBLIC SUB miopenclose(nomarchivo AS String)
  DIM longitudarchivo AS Integer
  DIM linea AS String
  DIM hFile AS File
  
  IF Exist(nomarchivo) THEN 
    OPEN nomarchivo FOR READ AS #hFile
    longitudarchivo = Lof(hFile)
    WHILE NOT Eof(hFile)
      LINE INPUT #hFile, linea
      Variables.contenido = Variables.contenido & linea & "\n"
    WEND 
    CLOSE #hFile
  ELSE 
    Variables.contenido = Variables.contenido & "El archivo: " & nomarchivo & " no existe"
  ENDIF 
END
-----------------------------
PUBLIC SUB miStat(informacion AS String)
    
    IF Exist(informacion) THEN 
      Variables.contenido = "Tamaño: " & Round(Stat(informacion).Size / 1024) & "K" & "\n"
      Variables.contenido = Variables.contenido & "Grupo: " & Stat(informacion).Group & "\n"
      Variables.contenido = Variables.contenido & "Ultimo acceso: " & Format$(Stat(informacion).LastAccess, "dd/mm/yy") & "\n"
      Variables.contenido = Variables.contenido & "Ultimo cambio: " & Format$(Stat(informacion).LastChange, "dd/mm/yy") & "\n"
      Variables.contenido = Variables.contenido & "Ultima modficiación: " & Format$(Stat(informacion).LastModified, "dd/mm/yy") & "\n"
      Variables.contenido = Variables.contenido & "Ruta: " & Stat(informacion).Path & "\n"
      Variables.contenido = Variables.contenido & "Fecha y hora de creación " & Format$(Stat(informacion).Time, "dd/mm/yy hh:nn:ss") & "\n"
      Variables.contenido = Variables.contenido & "Usuario: " & Stat(informacion).User & "\n"
    ELSE 
      Variables.contenido = "El archivo o carpeta no existe"
    ENDIF 
END
---------------------------
PUBLIC SUB mitemp()
  
  Variables.contenido = Temp$()
  
END
--------------------------
PUBLIC contenido AS String

[/code]

Podemos aprender con ejemplos simples.Como se va haciendo más grande el programa. :oops: 
Por cierrto, el modulo para probar Temp$. No salio bien al convertirlo en código. :???: 

Saludos.


