Hola soy nuevo en esto de visual basic 6, y me gustaria saber como importar un archivo .txt a msflexgrid.
Se como exportarlo, y he estado googleando y no encuentro una manera de importarlo.
Gracias por adelantado
Salu2
| ||||
Respuesta: Importar .txt edito: Aqui dejo el exportar Cita: Private Sub Command5_Click() Dim i As Boolean i = Exportar_FlexGrid_txt(MSFlexGrid1, "practicas.txt", vbTab) If i Then MsgBox "Msflexgrid exportado a txt", vbInformation End If End Sub Public Function Exportar_FlexGrid_txt(FlexGrid As Object, _ Path_Txt As String, _ Delimitador As Variant) As Boolean Dim Fila As Integer Dim Columna As Integer Dim Free_File As Integer Free_File = FreeFile Open Path_Txt For Output As #Free_File For Fila = 0 To _ FlexGrid.Rows - 1 FlexGrid.Row = Fila For Columna = 0 To _ FlexGrid.Cols - 1 FlexGrid.Col = Columna If Columna > 0 Then Print #Free_File, Delimitador; End If Print #Free_File, vbNullString & FlexGrid.Text & vbNullString; Next Print #Free_File, "" Next Close Exportar_FlexGrid_txt = True Exit Function Err_Funcion: Close #Free_File MsgBox Err.Description, vbCritical End Function |
| ||||
Respuesta: Importar .txt Hola Sergio18! En este post http://www.forosdelweb.com/f69/impor...exgrid-796057/ estamos tratando el tema pero mas amplio ya que aqui es tema de .txt y .dat, creo que el problema que tengo yo, es el mismo y erbunson me esta ayudando un montón. Espero te sirva. Un saludo |
| ||||
Respuesta: Importar .txt Hola XYON126 Es que lo que tu quieres hacer es que te salgan los datos una vez habras la ventana yo lo que quiero es al pulsar un boton se importen los datos al msflexgrid. Gracias igualmente por intentar ayudarme. Salu2 |
| ||||
Respuesta: Importar .txt Hola Sergio: Permíteme que te indique que lo que XYON pretende y lo que pretendes tu es exactamente lo mismo. Todos los caminos conducen a Roma. Supongamos que tenemos un fichero de datos y queremos cargarlo en un Grid, lo mejor es que hagamos una Rutina que lea el fichero y lo pase al Grid, pero esto lo necesita XYON y lo necesitas tu, la única diferencia entre ambos es que uno lo quiere en el Load y el otro en el Command Cita: Ya que el otro post está mas avanzado si quieres únete a el y vamos comentando.' Sergio18 Private Sub Command1_Click() ' Ejecutar Rutina de Carga End Sub ' Xyon126 Private Sub Form_Load() ' Ejecutar rutina de Carga End Sub ' Sergio y Xion Public Sub ImportarGrid '... Bla, Bla, Bla ... End Sub Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt Hola, no hay nada de dificil. si el proceso de exportar lo que hace es abrir un archivo e ir escribiendo los datos del flexgrid...el proceso de importar es al reves, abris el archivo lo recorres y a medida que lees, vas llenando el flexgrid. saludos.
__________________ " Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein |
| ||||
Respuesta: Importar .txt Hola seba123neo Lo he cambiado mas o menos al reves pero me sigue sin salir me podrias decir que falla?? Cita: Me dice que el calificador no es valido y me señala practicas.rows Private Sub Command6_Click() Dim blni As Boolean blni = Importar_practicas_txt(MSFlexGrid1, "practicas.txt", vbTab) If blni Then MsgBox "txt importado", vbInformation End If End Sub Public Function Importar_practicas_txt(Path_txt As Object, _ practicas As String, _ Delimitador As Variant) As Boolean Dim Fila As Integer Dim Columna As Integer Dim Free_File As Integer Free_File = FreeFile Open Path_txt For Input As #Free_File For Fila = 0 To _ practicas.Rows - 1 practicas.Row = Fila For Columna = 0 To _ practicas.Cols - 1 practicas.Col = Columna 'escribe el Delimitador If Columna > 0 Then Print #Free_File, Delimitador; End If Print #Free_File, vbNullString & practicas.Txt & vbNullString; Next Print #Free_File, "" Next Close Importar_practicas_txt = True Exit Function Err_Funcion: Close #Free_File MsgBox Err.Description, vbCritical End Function |
| ||||
Respuesta: Importar .txt Hola Sergio, te estas empecinando en lo que no es. Te comento que Exportar e Importar son dos cosas muy parecidas y muy diferentes a la vez. Cuando decides exportar un Grid a un fichero de texto tienes como punto de partida que conoces las Filas que tiene el Grid y las Columnas que tiene cada fila por lo tanto tienes un proceso muy simple. For Fila = Primera To Ultima ' Guardar las Columnas de la Fila For Columna = Primera To Ultima .... Next ' Continuar con la siguiente Fila Next En cambio cuando Importas un TXT debes averiguar o por lo menos controlar cuantas columnas vas a necesitar y despues procesar el fichero e ir añadiéndolo al Grid. Dependerá de como tengas el Txt, etc, es conveniente leer la linea entera de cada registro y procesarla con la funcion Split con lo que consigues una matriz que te indica cuantas columnas necesitaras. Bueno, es para que te hagas una idea de que de poco te va a servir reutilizar el código de exportar sino que creo que para que tu mismo lo entiendas te conviene mas reescribir el de importar. Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt Entonces el for seria: For Fila = 1 To 4 ' Guardar las Columnas de la Fila For Columna = 1 To 5 Next Next Algo asi?? PD:Es que solo llevo 4 dias estudiando visual basic tampoco entiendo mucho |
| ||||
Respuesta: Importar .txt El ejemplo que indicas es suponiendo que tienes 4 registros y cada uno de ellos tiene 5 campos diferentes. Sin embargo debes tener en cuenta que en el Grid las Filas y Columnas empiezan por la numero 0, por lo tanto de ser como supongo, sería. For Fila = 0 To 3 ' Guardar las Columnas de la Fila For Columna = 0 To 4 ' Guardar Next Next Este ejemplo tuyo es para Exportar, no para importar. Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt Cita: Tengo 5 columnas con 4 filas en cada una de ellas con campos diferentes El ejemplo que indicas es suponiendo que tienes 4 registros y cada uno de ellos tiene 5 campos diferentes. |
| ||||
Respuesta: Importar .txt Entonces y siempre que hablamos de Exportar el Grid hacia un Archivo de texto el bucle sería: ' Procesar de la Primera a la última Fila For Fila = 0 To 3 ' Guardar las Columnas de la Fila For Columna = 0 To 4 ' Instruccion Print de Guardar en Archivo Print Grid.TextMatrix(Fila, Columna); Next Next Pero muy IMPORTANTE si tienes una Fila de Cabecera este proceso también la va a guardar así como si tienes Columnas Fijas. De todos modos si vas a guardar o leer texto plano, te aconsejaría que le des un vistazo a la propiedad .Clip del MsFlexgrid cuya ayuda de MSDN te copio a continuación Cita: Saludos Devuelve o establece el contenido de las celdas de la región seleccionada en el control MSHFlexGrid. Esta propiedad no está disponible entiempo de diseño. Sintaxis objeto.Clip [= cadena] La sintaxis de la propiedad Clip consta de las siguientes partes: Parte Descripción objeto Expresión de objeto que da como resultado un objeto de la lista Se aplica a. cadena Expresión de cadena con el contenido del área seleccionada. Comentarios La cadena puede almacenar los contenidos de múltiples filas y columnas. En una cadena, el carácter de tabulación, Chr (9), o la constante vbTab indican una nueva celda en una fila. También en una cadena, un carácter de retorno, Chr (13) o vbCR indican el principio de una nueva fila. Utilice la función Chr o las constantes de Visual Basic para incrustar estos caracteres en cadenas. Cuando coloca datos en un control MSHFlexGrid, sólo afecta a las celdas seleccionadas. Si hay en la región seleccionada más celdas de las descritas en la cadena, las celdas restantes se dejan solas. Si hay más celdas descritas en cadena que en la región seleccionada, se pasa por alto la parte no utilizada de la cadena.
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt Te comentaba lo del Texto plano, porque es mucho mas facil como te indicaba con la propiedad CLIP, otra cosa sería si pretendes guardar el Grid como en un programa de Planificacion de Horarios que estoy desarrollando estos días y en el que tengo la necesidad de Guardar o Imprimir el Planning con Ajustes, Nombres, Colores, etc. Adjunto copia de parte de la pantalla para que puedas hacerte una idea de lo que puedes conseguir importar o exportar. http://lh4.ggpht.com/_UaOp88jX6sk/S8...eenShot001.jpg
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt acabo de hacer esto y lo importa pero mal Cita: Pero tengo que hacer una funcion ¿no? para que recorrar las filas y columnas Private Sub Command6_Click() Open "practicas.txt" For Input As #1 MSFlexGrid1.Text = Input(LOF(1), 1) Close #1 End Sub |
| ||||
Respuesta: Importar .txt La Exportación con la propiedad Clip sería como sigue: Imaginate que tienes un MsFlexgrid llamado Personas con datos en sus Filas y Columnas, para exportarlo directamente podrías hacer lo siguiente:
Código vb:
' Si lo tienes exportado de esta manera, lo puedes importar de un modo similar pero linea a linea no ser que leas todo el archivo, por ejemplo asíVer original
Código vb:
Solucionado.Ver original Ten en cuenta que los delimitadores están tal como indica la ayuda que te he copiado antes o sea Chr(9) para separar campos entre columnas y Chr(13) para separar registros Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| ||||
Respuesta: Importar .txt Ya lo he probado y va perfecto pero tengo que añadir yo las filas y las columnas del txt,si yo añado otra fila al txt esta no se mostrara, como hago para que se muestre sin tener que poner yo todo el rato las columnas o filas. Cita: PD: Muchas Gracias Private Sub Command6_Click() ' Seleccionar la Primera Fila MSFlexGrid1.Row = 0 MSFlexGrid1.Rows = 5 MSFlexGrid1.FixedRows = 0 ' Seleccionar la Primera Columna MSFlexGrid1.Col = 0 MSFlexGrid1.Cols = 5 MSFlexGrid1.FixedCols = 0 ' Seleccionar la última Fila MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1 ' Seleccionar la última Columna MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1 ' Variables necesarias, Linea y Registros Dim Linea As String, Registros As String ' Abrimos el fichero Open "practicas.txt" For Input As #1 ' Procesamos hasta el final While Not EOF(1) ' Leemos una linea completa Line Input #1, Linea ' La añadimos a una variable de memoria con vbCr al final Registros = Registros & Linea & vbCr Wend ' Cerramos Fichero Close #1 ' Aplicamos la propiedad MSFlexGrid1.Clip = Registros End Sub |
Etiquetas: |