Ver Mensaje Individual
  #19 (permalink)  
Antiguo 14/04/2010, 15:35
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Importar de un .dat o txt a MSFlexGrid

Hola:

Disculpa pero estos días estoy muy liado y antes es el trabajo que la devoción, intentaré aclarar tus dudas:

1 - El código yo lo tengo en un módulo.bas ya que de este modo lo comparto desde todos los form sin ningún problema.

2 - Efectivamente, el tener las rutinas unificadas en una sóla hace mas fácil la posterior corrección de errores o ampliación de la misma ya que de este modo tienes todo concentrado en un mismo sitio, además de tratarse como ves de una rutina bastante simple.

3 - El FreeFile asigna un nuevo número cada vez, te asigna el próximo Canal disponible, por lo que no solicito un nuevo FreeFile si tengo el fichero abierto porque evidentemente no sería el mismo acceso.

4 - El tamaño de 256 en este ejemplo es poque la UDT tiene una longitud de 256, por lo tanto este número varía en funcion de la longitud de tu UDT, por costumbre procuro siempre reservar espacio disponible para posibles ampliaciones en el la UDT aunque sin pasarse.

5 - Public se utiliza para definir procedimientos o Funciones que están accesibles desde otros Módulos y Private para los que están solo disponibles en módulo que los contiene, su uso depende de tus necesidades.

7 - El motivo de dividir el tamaño del fichero es simplemente porque dividiendo el LOF del Fichero por la longitud del Registro obtienes el número de registros que tiene el Fichero.

Si pretendo leer el registro 0 o un registro que no existe devuelvo -1 para controlar el error fuera de la rutina.

8 - CALL GridPonerDato (Grid, 0, 0, "Dato") En esta sentencia lógicamente tienes que sustituir el primer parámetro Grid por MsFlexGrid1, MsFlexGrid2, o como te convenga según tu proyecto.

CALL GridPonerDato (MsFlexGrid2, 0, 0, "Dato")

Cita:
Dim i As Integer, Grid As String
i = 1
For i = i To 3
Grid = "MsFlexgrid" & i
Call GridPonerDato(Grid, 0, 0, "25")
Esto no se puede hacer ya que la rutina GridPonerDato espera como primer parámetro un MsFlexGrid identificado por su nombre de objeto y tu le estas pasando una String, por esta razón te da el error.

Bueno, poco a poco lo conseguiremos.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...