Access - Metodo OPEN FOR INPUT Problema SE DETIENE EL CODIGO

 
Vista:
Imágen de perfil de vianney
Val: 37
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Metodo OPEN FOR INPUT Problema SE DETIENE EL CODIGO

Publicado por vianney (15 intervenciones) el 14/07/2020 19:07:58
Buenas tardes a todos necesito ayuda con un codigo, estoy programando en VISUAL BASIC de access 2010, el codigo abre un archivo TXT con una informacion que necesito separar, el problema que tengo es que el codigo funciona si la cantidad de caracteres del archivo TXT es menor a 30.000 caracteres, si el archivo TXT es mayor a 30.000 caracteres el codigo sencillamente se detiene y no ejecuta nada a partir de la lectura del archivo. No se si el Metido OPEN FOR INPUT tiene alguna limitante en cuanto a la cantidad de caracteres que puede procesar. Si alguien sabe de otro metodo que pueda utilizar en Visual Basic de access 2010, le agradeceria la ayuda. Dejo el codigo que estoy usando para leer el TXT. espero sus comentarios.

Vianney.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim n_File As Integer
Dim captura_original As String
Dim nom_archi As String
Dim captura As String
 
nom_archi = InputBox("Ingrese el nombre del archivo a migrar: ")
 
 
 
    'Número de archivo libre
    n_File = FreeFile
 
    'Abre el archivo indicado
 
   Open CurrentProject.Path & "\Express\" & nom_archi & ".txt" For Input As n_File
 
    'Lee todo los datos del archivo y lo almacena en la variable
 
    captura_original = Input$(LOF(n_File), #n_File)
 
    'Cierra el archivo abierto
 
    Close n_File
 
    'Carga el contenido de la variable en el TextBox
 
   MsgBox captura_original
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Metodo OPEN FOR INPUT Problema SE DETIENE EL CODIGO

Publicado por Anonimo (1919 intervenciones) el 15/07/2020 17:27:52
Las variables de texto (según las notas de la ayuda) en la versión de 32 bit pueden alcanzar los 64 Kb. para otras funcionalidades acorta a 32 Kb.

Cargar un texto tan grande no suele ser la opción ideal (las funciones no suelen aceptar con entusiasmo un texto que supere el tamaño de un campo de texto de una tabla), lo suelen clasificar como un campo de tipo Memo.

En ficheros a procesar (depende de cada proceso en particular) suele utilizarse la lectura secuencial y sobre la marcha ejecutar las acciones adecuadas, se supone que será siempre mas eficiente que sobrecargar la memoria (la de trabajo, no la RAM pura y dura).

Modificar (en la maquina) los buffer para intentar sobrepasar los limites aconsejados suele dar problemas en aplicaciones compartidas (otras maquinas: otras condiciones de trabajo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Metodo OPEN FOR INPUT Problema SE DETIENE EL CODIGO

Publicado por vianney colmenares (15 intervenciones) el 15/07/2020 21:00:44
Buenas tardes amigo, gracias por tu respuesta. El archivo TXT que intento leer recoge la informacion que envia un equipo de laboratorio, cada vez que emite un resultado, guarda la informacion en el TXT por eso es el gran tamaño que tiene el archivo, dependiendo de la cantidad de resultados el tamaño varia. No se si existe en Viasual basic para Access algun otro metodo para poder cargar a una variable STRING el contenido del archivo TXT, para luego poder usar el metodo SPLIT y poder dividir en resultados parciales la informacion. Espero tus comentarios. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Metodo OPEN FOR INPUT Problema SE DETIENE EL CODIGO

Publicado por Anonimo (1919 intervenciones) el 15/07/2020 22:54:52
Si en la cadena se puede aplicar SPLIT, hay una referencia que se puede detectar al leer la cadena con (por ejemplo):

1
Line Input #n_File , captura_original 

Se repite el proceso con un 'Do .. Loop' mientras no se llega al final : EOF(n_File )

Aquello que se pueda hacer de forma posterior, se puede hacer en tiempo de ejecución y es muy probable que al trabajar con menos datos la eficiencia será mayor, pues (si los datos lo permiten y se le dedica un poco de tiempo) al finalizar la importación cada cosa estará en su lugar sin necesidad de un proceso posterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar