Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
se puede leer una linea especifica de un archivo sin recorrer todo el archivo?
supongamos que tenemos un archivo txt con datos algo así
1=nombre
2=apellido
3=edad
4=dirección
quisiera saber si con el código
While Not Eof(archivo)
Line Input #archivo, linea
Print linea
Wend
ese código lee linea por linea empezando de la primera linea hasta la ultima,y para leer la edad por ejemplo tendría que poner un continúe si el primer carácter no es 3 ,
si es 3 leo la información de la linea.
mi pregunta es, se puede leer la linea 3 directamente sin leer las lineas anteriores? con el código mostrado modificado o de otra forma?
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
Hola v3ctor.
Los archivos de texto plano se leen siempre de principio a fin. Solo que seleccionas la información que te interesa.
En tu caso es la linea que comienza por 3 para mostrarla.
Con los archivos de texto podemos acceder a ellos usando el modo secuencial y el modo directo
La utilización de un método de acceso u otro, depende de como se ha organizado el fichero al crearlo y del soporte donde se ha creado.
No es lo mismo un archivo que sea como un libro, un documento, a un archivo que tiene una estructura de registros con sus campos.
Un archivo puede ser organizado de tres maneras:
- Secuencial
- Secuencial indexada
- Directa o relativa
Te adjunto un vídeo aunque es para el lenguaje C, hay conceptos generales que podemos entender para gambas, o en general.
No hay necesidad de entender la estructura de como se crea en C.
Hay libros y libros sobre este tema. Los programadores con mas años de experiencia estarán muy acostumbrado a trabajar con los
archivo de texto de distintas formas.
Espero haberte ayudado un poco. Como comprenderás con el tiempo y el uso de las bases de datos, han quedado un poco desplazados.
Los archivos de texto siempre serán mas simples a la hora de trabajar con ellos.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
julio estaría interesante saber cual de los dos métodos es mas rápido en micro segundos, si lo mejor es la sqlite3 pero dado mis intentos fallidos jaja le saco el cuerpo, es algo pendiente que tengo.
shell, muy buena tu info la estoy leyendo.
hay algo que no entiendo supongamos que el archivo tiene cuatro lineas no entiendo que no haya un método para acceder solo a la linea tres. eso deberia existir pues se ahorra tiempo para mostrar los resultados finales y se ahorra recursos de procesamiento.
algo asi:
linea= file.open.line(RutaArchivo, 40)
print linea
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
V3ctor:
Citar:
julio estaría interesante saber cual de los dos métodos es mas rápido en micro segundos,
En principio, es debería de ser más rápido el método del array de cadenas, ya que el interprete trabaja menos y por lo tanto, hay menos ordenes que se tienen que traducir de gambas al lenguaje máquina mientras se ejecuta la aplicación.
Tambien depende del tamaño del archivo de texto, no es lo mismo 10 lineas que 10.000 lineas....
De todos modos, si tienes muchos datos, y quieres "rendimiento", lo mejor es usar un motor de base de datos (mysql, sqlite3, etc.).
Citar:
no entiendo que no haya un método para acceder solo a la linea tres. eso deberia existir pues se ahorra tiempo para mostrar los resultados finales y se ahorra recursos de procesamiento.
Busca información en la web de como se almacenan los archivos y su contenido en el ordenador.
Busca que son archivos secuenciales y de acceso aleatorio.
Los archivos del tipo aleatorio, pueden acceder a una determinada zona del archivo y extraer un registro. (son usados en C, pero la información se guarda como registros de un ancho fijo)
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
Citar:
estaría interesante saber cual de los dos métodos es mas rápido en micro segundos,
Eso es fácil. Implementa ambos métodos en dos funciones diferentes y activa el perfilado [0] en el IDE para conocer los tiempos de ejecución de cada función.
[0] Para activar el perfilado, menú Depuración->Activar perfilado
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
Hola.
Una cuestión importante, ¿ Tenemos algún limite a la hora de trabajar con los archivos de texto en gambas ?.
Quiero decir, ¿ podemos usar todos los métodos de acceso y lo que los programadores de antes han podido hacer a la hora de trabajar con ellos ?.
El manual que tengo aquí es del año 1994. Y es un tocho de 400 paginas. En una librería de segunda mano lo compré por 4€!.
Tiene ejercicios con algoritmos sobre ficheros , tablas y tablas de decisión ( ). Para hartarse..lastima no tener tiempo suficiente.
Le hago una foto y os lo muestro aquí. No he sabido reducir mucho más el peso del archivo.
A veces voy a las librerías de segunda mano, pero no es fácil encontrar material de ordenadores.
Hay libros bastante baratos de metodología de programación en cambio este lo he encontrado por cerca de 25€ en iberlibro, sera el estado.
Este está bien, esta plastificado. No olvidéis echar un ojo a:
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Se Puede Leer Una Linea Especifica De Un Archivo Sin Recorrer Todo El Archivo?
Hola Vuott.
En este caso es un ejemplo pequeño, pero imagina que quieres ir a una parte concreta de un archivo de texto mucho más grande sin tener que leer el contenido anterior.
Ese es el problema. Que a lo mejor no es tanto problema.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
Fecha y hora actual: Sabado, 27 Abril 2024, 13:36 • Todas las horas son UTC + 1 Hora
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
Lista de permisos
Lista de permisos
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario