Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Herramienta: Unir varios ficheros de texto en uno solo
#1

Os dejo una pequeña herramienta que he hecho para unir ficheros de texto plano.

Código fuente:
https://github.com/jsbsan/unirficherostexto
[-] Los siguientes 2 usuarios dicen gracias a jsbsan por este post:
  • Shordi, tincho
    ¡Gracias!
#2

Hola Julio, vi el video y esta bien explicado.
Gracias por compartir.
Saludos.
    ¡Gracias!
#3

Buena iniciativa que en eso de seleccionar ficheros sin un patrón claro lo visual es lo más rápido. Tan sólo le pongo una pega, pequeñita eso sí. En Gambas el tamaño de una variable tipo string está limitado por la cantidad de memoria disponible. La selección de archivos puede llegar a superar esa cantidad, con lo que puedes llegar a bloquear el programa, cuando menos.
Yo cambiaría la suma progresiva de ficheros sobre un fichero temporal en la partición gorda del disco duro que tengas (no en tmp, que suele ser pequeñita).

Saludos.

No podemos regresar
    ¡Gracias!
#4

Big Grin Gracias por compartir.
    ¡Gracias!
#5

Shordi
Cita:"En Gambas el tamaño de una variable tipo string está limitado por la cantidad de memoria disponible. La selección de archivos puede llegar a superar esa cantidad, con lo que puedes llegar a bloquear el programa, cuando menos."
¿como puedo ver en gambas3 cuanto espacio me queda libre mientras ejecuto el programa?
Recuendo que los antiguos BASIC tenian comandos para saber cuanto tenias de memoria "libre", pero en gambas3, no se me ha planteado ese problema.
Cita:"Yo cambiaría la suma progresiva de ficheros sobre un fichero temporal en la partición gorda del disco duro que tengas (no en tmp, que suele ser pequeñita)."

Prepararé una versión con esa mejora. Mis archivos son muy pequeños (de menos de 100 KB) y no creo que se me de el caso de que me quede sin espacio.

Gracias por los comentarios.

Saludos

Julio
    ¡Gracias!
#6

(08-08-2021, 19:10)jsbsan escribió:  ¿como puedo ver en gambas3 cuanto espacio me queda libre mientras ejecuto el programa?
No lo se, pero podrías hacer un experimento agregando caracteres a una variable tipo String e imprimiendo el numero de orden en la terminal del ide.
Sinceramente nunca, nunca, nunca, me tope con una limitación en la cantidad de caracteres que le puedo asignar a una variable String, que tal vez la tenga pero he manejado archivos de texto enormes y sin inconvenientes.
Saludos.
    ¡Gracias!
#7

En /proc/meminfo tienes toda la información disponible. Con algo así como

cat /proc/meminfo | grep Available

Te da la memoria disponible... aunque supongo que habría que sumar el swap disponible (también lo tienes en ese fichero).

Ciertamente es un límite teórico, creo, pero cuando uno se pone a unir ficheros nunca se sabe hasta donde se va a llegar.

Saludos.

No podemos regresar
    ¡Gracias!
#8

(09-08-2021, 10:00)Shordi escribió:  Ciertamente es un límite teórico, creo, pero cuando uno se pone a unir ficheros nunca se sabe hasta donde se va a llegar.

Si, correcto no esta determinado de antemano. Prara eludir la carga en memoria de la totalidad del archivo de unión se puede usar el siguiente recurso.
En la terminal, como sabes, se puede crear un archivo con:
echo "una línea de texto" > archivo.txt
Luego para agregar sucesivas lineas a un archivo existente se puede hacer así:
echo "otra línea de texto" >> archivo.txt
Por lo tanto lo único que hay que cargar en la memoria es el archivo de entrada de turno, para leer línea por línea, y pasarlo al archivo de unión, de esta manera por inmenso que sea el archivo final este nunca sera cargado en memoria.
También podría hacerse algo similar para leer linea por linea del archivo de entrada con INPUT o algo de eso.
Saludos.
Saludos.
    ¡Gracias!
#9

Tincho:
Cita:echo "otra línea de texto" >> archivo.txt
Buen truco ! 

Nota:
Me subido un nuevo  commit al programa. La mejora es que el nombre del fichero resultante "solo" es "unido" más la fecha y hora que lo crea. Antes era la suma de los nombres de los ficheros que unía y se me ha dado el error de nombre de fichero muy largo cuando cogía muchos ficheros para unirlos.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)