|
Página 1 de 1
|
Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Hola!.
Podría valer por ejemplo, para conocer el número máximo de campos que puede tener en cada registro de un archivo de texto (csv)
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#1 Jueves, 28 May 2015, 11:45 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Shell:
Hay un comando de la terminal que lo hace mucho más rápido: wc
https://hablemoslinux.wordpress.com/2012/02/26/el-comando-wc/
Citar: Para todo archivo procesado por el comando, se despliegan 4 columnas que índica el número de líneas, palabras y caracteres(en ese orden), además del nombre del archivo procesado. Además, si se procesan varios archivos, al final se muestra la cuenta total.Ejemplos:
Para un sólo archivo:
usuario@Linux:~$ wc /etc/passwd
38 57 1810 /etc/passwd
Para múltiples archivos:
usuario@Linux:~$ wc /etc/shells /etc/hosts
15 19 192 /etc/shells
9 26 246 /etc/hosts
24 45 438 total
Fuente:
https://hablemoslinux.wordpress.com/2012/02/26/el-comando-wc/
última edición por jsbsan el Jueves, 28 May 2015, 12:03; editado 1 vez
|
#2 Jueves, 28 May 2015, 12:03 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Julio:
No es exactamente el uso que normalmente le he dado al comando wc.
Uso típico: Contar el número de lineas
Creo que no es lo mismo. A lo mejor no lo entendido o no me he explicado mejor.
Esto toma cada linea. Cuenta de esa linea el número de palabras y almacena ese número.
Asi por ejemplo alineas[0] = 5, diría que la linea 1 tiene 5 palabras. Vale.
Luego una vez que ha contado cada palabra de cada linea, te muestra el número máximo de palabras "de la linea más larga".
Creo que no es lo mismo.¿ Qué opinas ?.
Quizás deba retocar el tema del mensaje. (Esto de estar en varios sitios a la vez)
¿ A que si ?.
¡ Ay, que sería de nuestro administrador si no le diéramos faena !.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Jueves, 28 May 2015, 13:23; editado 2 veces
|
#3 Jueves, 28 May 2015, 13:14 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Creo que te estás metiendo en un berengenal importante, que se dice por mi pueblo.
Si tu archivo no tiene un formato csv, no puedes convertirlo en csv y de ahí en tabla sin volverlo totalmente inútil.
Me explico: Si las líneas no contienen los mismos datos, ¿En qué orden los pones?
Un ejemplo:
1,nombre,apellido1, apellido2,fecha,cantidad
2,nombre,apellido1,fecha,cantidad (es que es extranjero)
3,nombre, apellido1,apellido2,cantidad
etc.
No puedes, con una función estándar generar una tabla coherente. con eso.
Averiguar el número máximo de campos por línea no te ayuda, porque el orden de los campos no puede ser establecido más que añadiendo comas al final... cosa inútil por completo.
Si hablamos de un fichero concreto, pues tardas muuucho menos editándolo con el gedit y añadiendo y quitando a ojo las comas (o punto y coma). que necesites.
Si hablamos de ficheros desconocidos de antemano (es decir, no son csv y no sabemos qué contienen), debes tratar de alguna manera las líneas una a una, por ejemplo: todas aquellas que tengan campos de menos o de más, no se tratan; o todas las que tengan campos de menos se les añaden comas o si sin de más se ignoran y se cortan, etc. etc.
En ningún caso, con ficheros desconocidos puedes hacer la conversión a tabla sin perder o corromper información. Es lo que hay.
Hace unos años me pegué con el tema a fondo. La Junta de Calamidades de Castilla Mancha sólo facilita información en .pdf y cada vez con un layout distinto. Yo tenía que pasar los datos a nuestras bases de datos e hice un programa en gambas2 para ello. Era un programa engorroso, casi imposible de hacerlo entender por los usuarios y muy imperfecto. Finalmente se me encendió la bombilla y lo solucioné por otro lado, pero el convertir ficheros de texto de formato desconocido... casi imposible.
Saludos.
=================== No podemos regresar
|
#4 Jueves, 28 May 2015, 17:49 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Shordi:
Con toda sinceridad, lo que estoy viendo realmente es tu aplicación "siesta" y estoy con la función:
No me he puesto a ver la aplicación completamente, solo fui directo a tu función.
Y entre su código está esta linea dentro de un bucle:
For Each cad In lineas
c = Max(comun.substrcount(cad, separador), c) 'c es el número máximo de campos de una de las filas
Next
Junto a la función que llama: (Cosa que gambas muestra con tanta facilidad al usar su menú contextual)
Como leí, " 'c es el número máximo de campos de una de las filas".."interprete" a mi manera algo que creí parecido.
Pd Ahora he entendido por que dices que tu estilo es caótico..
"caótico neutral". Es que es normal, el código es grande y es fácil perderse.
Hay muchos conceptos de bases de datos que se me escapan en la función.
Una cuestión, ¿ los registros a la hora de convertirlos no deben tener comillas a la hora de la conversión ?.
Tu eliminaste las comillas, cambiaste los separadores, hiciste una serie de pasos que no sabía que fueran
necesario para convertir un csv a una base de datos sqlite.
Y es que tengo otros ejemplos en los que los campos no tienen comillas, solo son textos o números,
separados por una coma con el correspondiente salto de linea. Pude haber creado el archivo csv sin comillas.
Citar:
....
"3-D WORLD SOCCER","DEPORTES-FOOTBALL 3D","2","474-475"
"ABC-BOXING","DEPORTES-BOXEO","2","133-134"
"ACUATIC GAME","ARCADE","1","384"
....
Estoy intentando de entender un poco mejor como va este tema.
Creare otro post son el archivo con extensión sql. Son otras preguntas.
Muy interesante tu código, no quita que sea complejo la primera vez que se ve. Y más complejo si se hace agua en bases de datos.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Jueves, 28 May 2015, 18:43 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
jajaja, ¡claro que es caótico! No son programas escritos para que, en principio, los viese nadie...y luego la pereza, la pereza... Si a esto le sumas que el siesta lo hice en gambas2 y luego lo "modernicé" de correprisas por las elecciones sindicales -que la gente tenía que sacar pegatinas para el mailing y demás "para ayer"- no te digo ná, el regalo envenenado...
Sobre ésto:
Citar: No me he puesto a ver la aplicación completamente, solo fui directo a tu función.
Y entre su código está esta linea dentro de un bucle:
creo recordar (no tengo en esta aparato el código del siesta), que lo que se buscaba era que no sobrasen ni faltasen comas en la primera línea, porque en tal caso sqlite creaba la tabla y la dejaba vacía sin decir ni mú... pero, como te decía más arriba, no se consigue importar la tabla sin corromper la información de la base de datos (campos cambiados, etc.)
Citar: Una cuestión, ¿ los registros a la hora de convertirlos no deben tener comillas a la hora de la conversión ?.
Tu eliminaste las comillas, cambiaste los separadores, hiciste una serie de pasos que no sabía que fueran
necesario para convertir un csv a una base de datos sqlite.
Como estándar, los campos entre comillas son de texto y sin comillas numéricos. La función la creé así... antes de saber que Sqlite todo lo trata como texto y "daba igual". Siendo el propósito del programa la impresión, pues... sinceramente no recuerdo qué hice (en mi torpe memoria creía que lo había "anulado" por sistema de hacer ocultos los controles...)
Ya que estás de depurador de esa parte de la conversión del sql y si te apetece, siéntete libre de mejorarlo, es un código muy viejo y caótico, te quedaré agradecido.
=================== No podemos regresar
última edición por shordi el Jueves, 28 May 2015, 19:05; editado 1 vez
|
#6 Jueves, 28 May 2015, 19:05 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
jeje, gracias por las lecciones, Jorge.
Estoy empezando a entender bases de datos, imagina lo verde que sigo estando (siempre en base de datos).
Los ejemplos que estudio o practico me hacen volver a la temática de bases de datos. Siempre está ahí
en la mayoría de las aplicaciones de gestión de datos. Y es fundamental saber usarlas.
¿ Sigues programando en el mismo estilo ?.
¿ Es el basic caótico ?
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Jueves, 28 May 2015, 19:25 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Número Máximo De Palabras Por Lineas En Un Archivo De Texto
Citar: ¿ Sigues programando en el mismo estilo ?.
Básicamente sí... pero no. O sea... yo qué sé
Citar: ¿Es el basic caótico?
Noo, no me quites méritos, el caos es mi ámbito natural. Ya quisiera el Basic ese...
=================== No podemos regresar
|
#8 Jueves, 28 May 2015, 19:49 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|