Hola erbunson!
Si algun dia nos conocemos personalmente, dame ostias hasta el DNI, estoy ciego y no habia visto el .TextMatrix cuando lo tenia delante de mis narices en la linea 4 de la segunda sentencia.
Y ahora ya voy captando,lo comentado, es lo que he comentado varias veces que en los manuales y tutoriales que corren por ahi en ningun sitio ponian lo que acabas de postear que si te posicionas en un Row/Col haces u obtienes lo mismo que en un .TextMatrix; entonces la linea :
Código vb:
Ver originalGridCabecera MsFlexgrid1, LaColumna, ElAncho, ElTitulo, ElAjuste
que es exactamente lo del Row/Col,¿el orden de propiedades es ese? ¿Cuantas mas y en que orden puede llevar?
¿La primera fila la "0" y la primera columna "0" que se podrian tomar como indice o cabecera respectivamente ¿Tienen algun caracter(tratamiento) especial o es indiferente, pues veo que por defecto el MsFlexgrid la diferencia en color, ¿hay que tratarlas siempre por separado o simplemente como fila y columna (0,0) y punto?.
Cita:
Iniciado por erbunson Si quieres deberías pegar el Codigo de la UDT que utilizas para leer los datos y la sentencia Open del Fichero para saber la longitud del mismo.
Aqui en este punto estoy tambien anclado pues en el formulario reloj que es donde entro los datos en el archivo Horas.dat los guardo de esta manera .:
Código vb:
Ver originalOption Explicit
'Variables
'##################################################
' Estructura para dar de alta los datos de las Horas.
Private Type Horas_T
'Variables
horainicio1 As Date
horafin1 As Date
horainicio2 As Date
horafin2 As Date
horainicio3 As Date
horafin3 As Date
Totalhoras As Date
dia As String * 8
semana As String * 4
mes As String * 12
año As Integer
End Type
'Variables para utilizar la estructura anterior
Dim Horas As Horas_T
Dim HorasTemp As Horas_T
'Variables para el archivo de los datos de Horas_T y temporal
Dim FileFree As Integer
Dim FileTemp As Integer
'Variables para la posición del primer y último registro
Dim RegActual As Long
Dim RegUltimo As Long
' Variable para la posición Temporal del registro
Dim RegActualTemp As Long
Dim Pos As Integer, p As Integer
' Variable para el cronometro
Dim marco As Integer
Dim horainicio As Date
Dim horafin As Date
Dim horainicio1 As Date
Dim horafin1 As Date
Dim horainicio2 As Date
Dim horafin2 As Date
Dim horainicio3 As Date
Dim horafin3 As Date
Dim tiempo_C As Date
Dim conthoras As Integer
Dim dia_C As String
Dim mes_C As String
Dim semana_C As String
Dim año_C As Integer
' Variable para identificar dia y mes.
Dim diatemp As Integer
Dim mestemp As Integer
Dim x As Integer
Dim i As Integer
Dim lcdTest As New mcLCD
Private Sub cmd_fin_Click()
diatemp = Weekday(Format(Date, "ww"))
mestemp = Month(Now)
semana_C = Format(Date, "WW")
año_C = Format(Date, "YYYY")
horafin = Time
marco = 0
dia_C = diatemp
mes_C = mestemp
'Sentencia para Nombrar los dias de la semana.
Select Case diatemp
Case 1
dia_C = "Lunes"
Case 2
dia_C = "Martes"
Case 3
dia_C = "Miercoles"
Case 4
dia_C = "Jueves"
Case 5
dia_C = "Viernes"
Case 6
dia_C = "Sabado"
Case 7
dia_C = "Domingo"
End Select
'Sentencia para Nombrar los meses.
Select Case mestemp
Case 1
mes_C = "Enero"
Case 2
mes_C = "Febrero"
Case 3
mes_C = "Marzo"
Case 4
mes_C = "Abril"
Case 5
mes_C = "Mayo"
Case 6
mes_C = "Junio"
Case 7
mes_C = "Julio"
Case 8
mes_C = "Agosto"
Case 9
mes_C = "Septiembre"
Case 10
mes_C = "Octubre"
Case 11
mes_C = "Noviembre"
Case 12
mes_C = "Diciembre"
End Select
tiempo_C = horafin - horainicio
'Datos salida por MsgBox
MsgBox tiempo_C & " minutos realizados." & vbCrLf & vbCrLf _
& Date & vbCrLf & vbCrLf & "KW-" & semana_C
MsgBox horafin & vbCrLf & horainicio & vbCrLf & "________" & vbCrLf & " " & vbCrLf _
& tiempo_C & vbCrLf & año_C & vbCrLf & dia_C & " , " & mes_C & vbCrLf & "KW-" & semana_C
'Guardamos en el archivo Horas.dat los datos del contenido de las variables.
GuardarDatos
'Escribimos los datos en el archivo y en la posición
Put #FileFree, RegActual, Horas
'Cerramos archivo de datos.
Close FileFree
End
End Sub
Private Sub cmd_Inicio_Click()
x = x + 1
marco = 2
horainicio = Time
'Asignamos los datos de la hora de inicio
Select Case x
Case 1: horainicio1 = horainicio
Case 2: horainicio2 = horainicio
Case 3: horainicio3 = horainicio
End Select
'Escribimos los datos en el archivo y en la posición
Put #FileFree, RegActual, Horas
End Sub
Private Sub cmd_pausa_Click()
i = i + 1
marco = 1
horafin = Time
'Asignamos los datos de la hora de pausa
'Asignamos los datos de la hora de inicio
Select Case i
Case 1: horafin1 = horafin
Case 2: horafin2 = horafin
Case 3: MsgBox " Ejecucion no valida." & vbCrLf & "Esta es la ultima salida presione Detener", _
vbExclamation, "Guardar datos."
End Select
'Escribimos los datos en el archivo y en la posición
Put #FileFree, RegActual, Horas
End Sub
Private Sub Form_Load()
x = 0
i = 0
conthoras = conthoras
conthoras = conthoras + 1
lcdTest.NewLCD Picture1
'Carga el primer registro del archivo
Cargar
End Sub
Private Sub Cargar()
FileFree = FreeFile
Open "Horas.dat" For Random As FileFree Len = Len(Horas)
RegActual = 1
' Almacenamos la posición del último registro
RegUltimo = LOF(FileFree) / Len(Horas)
If RegUltimo = 0 Then
RegUltimo = 1
End If
End Sub
Private Sub GuardarDatos()
'Asignamos los datos de la estructura con el contenido de las variables.
With Horas
' Variable para del archivo Horas.dat
.horainicio1 = horainicio1
.horafin1 = horafin1
.horainicio2 = horainicio2
.horafin2 = horafin2
.horainicio3 = horainicio3
.horafin3 = horafin3
.Totalhoras = conthoras
.dia = dia_C
.semana = semana_C
.mes = mes_C
.año = año_C
End With
End Sub
Private Sub Picture1_Click()
Unload frmLCD
End Sub
Private Sub Timer1_Timer()
If marco = 0 Then
lcdTest.Caption = "00:00:00"
ElseIf marco = 1 Then
lcdTest.Caption = horafin
Else
lcdTest.Caption = Time
End If
End Sub
El problema es que no se si en el formulario del MsFlexgrid he de llamar a los datos igual y como tratar o filtrarlos para evitar los tres problemas que comento; de momento lo que estoy haciendo es una rutina llamada "Visualizardatos ()" y otra "Datos ()". :
La "Visualizardatos ()" estoy asignando cada dia de la semana con un número y cada registro de entrada o salida tambien para poder tener una especie de coordenada y poder identificar la celda de MsFlexgrid y con un Select case le inserto su dato obtenido.(1er. problema, como poder indentificarlo dentro de mi Horas.dat).
Y en la segunda rutina "Datos ()", aqui es donde Habro el archivo leo los datos y pretendo una vez identificado cada dato guardarlo en una variable para posteriormente cerrar el archivo. Mi problema es que con la sentencia :
No se si la he de declarar igual que en la del reloj o no (creo que por logica si) pero como trato los registros vacios(dias no trabajados, dias con solo una entrada, etc) este es un punto que me estoy rompiendo los cascos y habriendo el archivo para ver como los guarda, púes eso veo un monton de caracteres irreconocibles y me quedo peor que al principio.
Un saludo