Notepad++ necesidad de crear saltos de línea con variante de condición
Resuelto
Lyne
-
maclesglyne Mensajes publicados 11 Estado Membre -
maclesglyne Mensajes publicados 11 Estado Membre -
Hola a todos,
tengo un archivo con comandos, cada comando comienza con " seguido de 5 números y el símbolo de cierre del comillas.
Ejemplo de la escritura de un comando "32564".
tengo LF al final de cada línea pero un comando puede ocupar una línea, dos líneas o tres líneas.
Por lo tanto, me gustaría tener un código que me permita decir que cada vez que veas 5 números entre comillas, pongas un salto de línea en la línea anterior.
Esto me permitiría tener un salto de línea entre cada comando y consolidarlos en Excel.
gracias a todos
Céline
tengo un archivo con comandos, cada comando comienza con " seguido de 5 números y el símbolo de cierre del comillas.
Ejemplo de la escritura de un comando "32564".
tengo LF al final de cada línea pero un comando puede ocupar una línea, dos líneas o tres líneas.
Por lo tanto, me gustaría tener un código que me permita decir que cada vez que veas 5 números entre comillas, pongas un salto de línea en la línea anterior.
Esto me permitiría tener un salto de línea entre cada comando y consolidarlos en Excel.
gracias a todos
Céline
5 réponses
Seguramente es posible prescindir de este paso. En Excel podríamos imaginar una columna con una fórmula que determina si es una fila de encabezado o detalle
=SI(ET(EXTRAE(A1;1;1)="""";ESNUM(CNUM(EXTRAE(A1;2;5)));
EXTRAE(A1;7;1)="""");"Encabezado";"Detalle")
Hola de nuevo,
disculpa por la respuesta tardía, pero he tenido un problema familiar.
Muchas gracias por tu ayuda :)
Entonces, en Excel, el csv no hay comillas " " que rodeen el número de pedido
por lo tanto, quizás pueda decirle que si comienza con 5 números, entonces... pero no encuentro nada en los foros.
disculpa por la respuesta tardía, pero he tenido un problema familiar.
Muchas gracias por tu ayuda :)
Entonces, en Excel, el csv no hay comillas " " que rodeen el número de pedido
por lo tanto, quizás pueda decirle que si comienza con 5 números, entonces... pero no encuentro nada en los foros.
Tu archivo .csv si quieres explotarlo con la coma como separador de campos, debes cambiarle el nombre a .txt
lanzar excel, archivo/abrir el .txt
decir archivo con separador, seleccionar la coma. Así tendrás columnas.
Para diferenciar la línea de encabezado y la línea siguiente, añades una columna vacía en A, y en A2 pones la siguiente fórmula
lanzar excel, archivo/abrir el .txt
decir archivo con separador, seleccionar la coma. Así tendrás columnas.
Para diferenciar la línea de encabezado y la línea siguiente, añades una columna vacía en A, y en A2 pones la siguiente fórmula
=SI(ESNUM(CNUM(B2));"Encabezado";"******")que duplicas en todas las líneas subsecuentes.
Ah sí, gran idea... ¡funciona! Sin embargo, solo tengo una objeción con este método
Ves, en Notepad la ventaja que tenía antes (había CR + LF cuando era un salto de línea después de cada comando y un LF cuando el comando se dividía en varias líneas).
Así que utilizaba la búsqueda y reemplazo (copiaba el LF y lo reemplazaba por nada), de este modo mi CSV se organizaba automáticamente con una línea por comando y pasaba por Excel. Usaba la función convertir por separador de comas y... ¡en dos clics tenía mi archivo utilizable!
Ahora, con tu solución (que ya es genial, gracias :)),
una vez que las líneas estén diferenciadas entre encabezado y las líneas subsiguientes, ¿tendrías una forma de que se coloquen una tras otra automáticamente? Porque cuando proceso un mes completo puedo tener de 5 a 6000 líneas en Excel... manualmente me va a costar mucho...
Ves, en Notepad la ventaja que tenía antes (había CR + LF cuando era un salto de línea después de cada comando y un LF cuando el comando se dividía en varias líneas).
Así que utilizaba la búsqueda y reemplazo (copiaba el LF y lo reemplazaba por nada), de este modo mi CSV se organizaba automáticamente con una línea por comando y pasaba por Excel. Usaba la función convertir por separador de comas y... ¡en dos clics tenía mi archivo utilizable!
Ahora, con tu solución (que ya es genial, gracias :)),
una vez que las líneas estén diferenciadas entre encabezado y las líneas subsiguientes, ¿tendrías una forma de que se coloquen una tras otra automáticamente? Porque cuando proceso un mes completo puedo tener de 5 a 6000 líneas en Excel... manualmente me va a costar mucho...
No funcionó
Puse en la zona de búsqueda
^("[0-9][0-9][0-9][0-9][0-9]")$
Puse en la zona de reemplazar
\n\1
que es el código para salto de línea :)
Después puse en la zona de búsqueda
^("\d{5}")$
Lo mismo, marcando expresión regular... pero no encuentra ninguna ocurrencia
Además, como hay códigos postales dentro también rodeados de comillas, necesita que la hipótesis esté realmente al inicio de la línea (un poco como la fórmula esnum asociada a la izquierda en Excel
Intenté en Excel pero es demasiado complejo a menos que se pase por VB... y VB está lejos para mí :)
El ^ significa al inicio de la línea y el $ fin de línea, por lo que solo tomamos líneas con 7 caracteres "nnnnn"
Puede que sea el separador de líneas del archivo, es cr+lf o lf
Sería necesario poner algunas líneas en una respuesta en el foro, pero mejor un archivo de ejemplo en un sitio de depósito como cjoint.fr
o entonces quita el $
[moderación]
no sé si puedes abrirlo