Ver Mensaje Individual
  #14 (permalink)  
Antiguo 13/04/2010, 00:28
Avatar de XYON126
XYON126
 
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Importar de un .dat o txt a MSFlexGrid

hola erbunson!

Cita:
Iniciado por erbuson Ver Mensaje
El .Row es la fila donde se ha hecho click con el ratón y el .Col es la columna, aunque tu puedes definir por código en que Fila y Columna quieres posicionarte, en cuanto al orden depende del ciclo que quieras usar en tu proceso o sea, si quieres procesar por filas o por columnas.
Lo del .Row y .Col lo tengo claro que con raton o por codigo puedes hacerlo celda por celda, la pregunta era que otros paramentros y en que orden se podian añadir, pues al menos que no hubiese una manera de identificar que es, si el valor era solo entre "," es donde me daria error o datos equivocados.

Cita:
Iniciado por erbuson Ver Mensaje
En cuanto al UDT creo que es correcto pero el problema es que me resulta francamente difícil introducirme en tu código tal vez porque muchas de las cosas que hay en el mismo se podrían simplificar enormemente con algunos trucos y resultaría mas fácil su lectura.

Msgbox Format("15/07/2009", "dddd")
MsgBox Format("15/07/2009", "mmmm")
Aqui me comentas que se podrian hacer varios trucos, yo tenia pensado por un lado en el tema de identificador de dias y meses hacer un modulo.cls (de clase) y simplemente con una llamada a una sentencia me diese el dia o mes, he probado meter toda la parte de codigo que hace eso en un modulo.cls y no see si es que se debe introducir diferente pero me daba error pero lo dejo para mas adelante para no complicar las cosas.Sobre lo del comando Format si le introduzco los "dddd" siempre me da el dia del mes pero no si es Jueves o Lunes de echo el Date lo que me responde es "13-abril-2010 y si le separo los parametros te da "13" "4" y "2010" si te fijas en las lineas 151 hasta la 158 lo unico que hacen es con el MsgBox visualizarme lo que se ha guardado en la variable que introducira el dato en el archivo.dat, lo realizo temporalmente para saber que es lo que me guarda por lo de la incomprension del archivo binario con intencion de eliminarlo posteriormente (el MsgBox), aqui si es solo un comado te diria cual es la forma de guardar en ASCII pero si son muchas lineas de codigo lo dejamos para mas adelante tambien.

Cita:
Iniciado por erbuson Ver Mensaje
Creo que primero deberías simplificar el proceso de guardado de los datos para posteriormente tener mas facil su proceso, al fin y al cabo lees el fichero de modo secuencial desde principio a fin ¿ no es asi ?
Exactamente de momento, aunque cuando haya mas de 20 registros supongo que lo logico es poner un contador de registros y hacer un bucle para seleccionar los que necesite para visualizar en el MSFlexGrid del otro formulario.Sobre este tema una pregunta: ¿VBasic identifica, guarda internamente en el archivo.dat el número de registro o dato de cuando fue guardado?¿Debe guardar siempre aunque sea con valor "0" (cero) o nulo todos los campos o si por ejemplo un registro tiene el campo dia "jueves" y otro dia "viernes" yo los puedo identificar posteriormente al leerlos? lo pregunto porque las variantes relacionadas con la Fecha las introduzco solo para identificar el registro sin error.Comentas que deberia simplificarlo ¿Como? yo para guardar en el archivo solo utilizo esto :

Código vb:
Ver original
  1. Private Sub GuardarDatos()
  2.  
  3. 'Asignamos los datos de la estructura con el contenido de las variables.
  4. With Horas
  5.  
  6.  ' Variable para del archivo Horas.dat
  7.  
  8. .horainicio1 = horainicio1
  9. .horafin1 = horafin1
  10. .horainicio2 = horainicio2
  11. .horafin2 = horafin2
  12. .horainicio3 = horainicio3
  13. .horafin3 = horafin3
  14. .Totalhoras = conthoras
  15. .dia = dia_C
  16. .semana = semana_C
  17. .mes = mes_C
  18. .año = año_C
  19.  
  20. End With
  21.  
  22. End Sub

eso para guardar en el archivo y esto para obtener los datos .:

Código vb:
Ver original
  1. Private Sub cmd_fin_Click()
  2.  
  3. diatemp = Weekday(Format(Date, "ww"))
  4. mestemp = Month(Now)
  5. semana_C = Format(Date, "WW")
  6. año_C = Format(Date, "YYYY")
  7.  
  8.  
  9. horafin = Time
  10. marco = 0
  11.  
  12. dia_C = diatemp
  13. mes_C = mestemp
  14.  
  15.  
  16. 'Sentencia para Nombrar los dias de la semana.
  17. Select Case diatemp
  18.     Case 1
  19.     dia_C = "Lunes"
  20.    
  21.     Case 2
  22.     dia_C = "Martes"
  23.    
  24.     Case 3
  25.     dia_C = "Miercoles"
  26.    
  27.     Case 4
  28.     dia_C = "Jueves"
  29.    
  30.     Case 5
  31.     dia_C = "Viernes"
  32.    
  33.     Case 6
  34.     dia_C = "Sabado"
  35.    
  36.     Case 7
  37.     dia_C = "Domingo"
  38.  
  39. End Select
  40.  
  41. 'Sentencia para Nombrar los meses.
  42. Select Case mestemp
  43.     Case 1
  44.     mes_C = "Enero"
  45.    
  46.     Case 2
  47.     mes_C = "Febrero"
  48.    
  49.     Case 3
  50.     mes_C = "Marzo"
  51.    
  52.     Case 4
  53.     mes_C = "Abril"
  54.    
  55.     Case 5
  56.     mes_C = "Mayo"
  57.    
  58.     Case 6
  59.     mes_C = "Junio"
  60.    
  61.     Case 7
  62.     mes_C = "Julio"
  63.    
  64.     Case 8
  65.     mes_C = "Agosto"
  66.    
  67.     Case 9
  68.     mes_C = "Septiembre"
  69.    
  70.     Case 10
  71.     mes_C = "Octubre"
  72.    
  73.     Case 11
  74.     mes_C = "Noviembre"
  75.    
  76.     Case 12
  77.     mes_C = "Diciembre"
  78.    
  79. End Select
  80.    
  81. tiempo_C = horafin - horainicio
  82.  
  83. 'Datos salida por MsgBox
  84.  
  85. MsgBox tiempo_C & "   minutos realizados." & vbCrLf & vbCrLf _
  86.         & Date & vbCrLf & vbCrLf & "KW-" & semana_C
  87.        
  88. MsgBox horafin & vbCrLf & horainicio & vbCrLf & "________" & vbCrLf & " " & vbCrLf _
  89.         & tiempo_C & vbCrLf & año_C & vbCrLf & dia_C & "  , " & mes_C & vbCrLf & "KW-" & semana_C
  90.        
  91. 'Guardamos en el archivo Horas.dat los datos del contenido de las variables.
  92. GuardarDatos
  93.  
  94. 'Escribimos los datos en el archivo y en la posición
  95. Put #FileFree, RegActual, Horas
  96.        
  97.        
  98. 'Cerramos archivo de datos.
  99.      
  100. Close FileFree
  101.        
  102. End
  103. End Sub

Se ve largo por el case pero en realidad son 8 lineas ya que el resto de codigo son el correspondiente a los botones de paro y encendido del cronometro y que cada uno solo tiene 8 lineas. ¿Que truco aplicarias?

Por cierto la parte del guardado final esta en el boton "Private Sub cmd_fin_Click()" que lo pongo para que no me duplique los datos al mismo tiempo de salir de la función.


Un saludo