Saltar al contenido
TXT Fácil
☰ Menú
Guía · Diagnóstico

Cómo encontrar la línea que hace fallar un TXT de ancho fijo

Por Gerardo Gustavo Jantsch · Publicado el

Respuesta rápidaPara encontrar la línea que hace fallar un TXT de ancho fijo, medí el largo de todas las líneas (LARGO en Excel, o un comando en PowerShell o Terminal contando bytes), buscá las que difieren y usá el patrón para deducir la causa: tildes en UTF-8, BOM, campos faltantes o saltos de línea. Si todo coincide, revisá campo por campo o dividí el archivo por mitades.

Por qué el error rara vez dice dónde está el problema

Los aplicativos fiscales leen cada línea del TXT por posiciones: toman los primeros caracteres como un campo, los siguientes como otro, y así hasta el final. Cuando algo no coincide, muchos solo informan que la longitud es incorrecta o que el archivo no se pudo importar, sin indicar la línea. En un archivo de 3.000 renglones, revisar a ojo es inviable. Este método permite encontrar la línea defectuosa en pocos minutos con herramientas que ya tenés: Excel, el Bloc de notas y, si querés, una línea de comandos.

Paso 1: medir el largo de todas las líneas

Un archivo de ancho fijo correcto tiene todas las líneas con el mismo largo (o, en diseños con cabecera y detalle, un largo por tipo de registro). Antes de mirar el contenido, medí.

Con Excel

Abrí el TXT con Datos → Obtener datos → Desde texto o CSV (o importalo como una sola columna de texto) y en la columna de al lado escribí =LARGO(A1). Copiá la fórmula hacia abajo, aplicá un filtro y mirá qué valores distintos aparecen. Si el diseño exige 145 posiciones y hay filas con 144 o con 147, ya tenés las candidatas.

Con PowerShell (Windows)

$n=0; Get-Content .\archivo.txt | ForEach-Object { $n++; if ($_.Length -ne 145) { "Línea $n mide $($_.Length)" } }

Con Terminal (Mac o Linux)

LC_ALL=C awk '{ sub(/\r$/, "") } length($0) != 145 { print NR ": " length($0) }' archivo.txt

El LC_ALL=C hace que se cuenten bytes y no caracteres, que es como cuenta el aplicativo. Si el archivo está en UTF-8, una vocal con tilde o una ñ ocupa dos bytes y eso por sí solo puede explicar que una línea mida uno o dos de más. La instrucción sub descarta el retorno de carro del final de línea, para que un archivo con saltos de Windows no parezca medir un carácter de más.

Paso 2: interpretar el patrón

La diferencia de largo casi siempre cuenta la causa. Esta tabla resume las que más se repiten:

Lo que vesCausa probable
Todas las líneas miden lo mismo, pero distinto del diseñoFalta o sobra un campo completo. Contá los campos del diseño contra los de tu planilla.
Todas miden un carácter de másSe está contando el retorno de carro del salto de línea, o hay un separador (punto y coma, tabulación) entre campos.
Solo algunas líneas miden 1 o 2 de másTildes, ñ o símbolos en un archivo UTF-8: cada uno ocupa dos bytes. Suele afectar la razón social o la descripción.
Solo algunas líneas miden de menosUn campo de texto quedó sin completar con espacios o un número no tiene ceros a la izquierda.
La primera línea mide 3 de másMarca de orden de bytes (BOM) al inicio, típica de UTF-8 con BOM.
Una línea mide 0 o 1 al final del archivoLínea en blanco final.

Paso 3: mirar los caracteres que no se ven

Si el largo es correcto y el aplicativo igual rechaza el archivo, el problema puede estar en caracteres invisibles:

Para el detalle de por qué importa la codificación, mirá la guía de ANSI, UTF-8 y saltos de línea.

Paso 4: revisar campo por campo

Cuando el largo y los caracteres están bien, el error está en el contenido de un campo. Una forma rápida de verlo es cortar el archivo por columnas y mirar los valores distintos de cada campo.

En Excel: Texto en columnas

Seleccioná la columna con las líneas, andá a Datos → Texto en columnas → Ancho fijo y marcá los cortes según las posiciones del diseño. Cada campo queda en su propia columna y con un filtro ves enseguida el valor que no corresponde: una fecha mal escrita, un código de tres dígitos donde van cuatro, un importe con punto decimal.

En Terminal: distribución de valores de un campo

cut -c1-2 archivo.txt | sort | uniq -c

Ese comando toma las posiciones 1 a 2 de cada línea y cuenta cuántas veces aparece cada valor. Si el diseño dice que ese campo solo admite 01, 02 o 03 y aparece un 1 , encontraste el origen. Cambiá el rango para revisar otro campo.

Paso 5: aislar el problema por mitades

Si todo parece correcto y el aplicativo sigue rechazando, dividí el archivo. Importá la primera mitad: si falla, el problema está ahí; si no, está en la otra. Repetí con la mitad defectuosa hasta quedar con unas pocas líneas. La herramienta Divisor de TXT corta archivos por cantidad de líneas sin romper ningún registro, y el Limpiador ANSI quita de una vez tildes, ñ, comillas tipográficas y el BOM sin cambiar el ancho de las líneas.

Lista de control para no volver a tener el problema

Si preferís no hacerlo a mano

Los generadores de TXT Fácil arman cada línea con el largo exacto del diseño, validan el CUIT y los importes antes de descargar y guardan el archivo en ANSI con CRLF. El generador de SICORE incluye además un auditor: pegás un archivo que te rechazaron y te marca línea por línea qué no coincide con el diseño.

Preguntas frecuentes

¿El aplicativo cuenta bytes o caracteres?

Cuenta posiciones sobre un archivo en ANSI o ASCII, donde cada carácter ocupa un byte. Si el archivo está en UTF-8, los caracteres con tilde o ñ ocupan dos bytes y la línea se desplaza, por eso conviene medir en bytes.

¿Por qué mi archivo pasa en Excel pero el aplicativo lo rechaza?

Excel muestra el contenido, no cuántos bytes ocupa cada carácter ni cómo terminan las líneas. Un archivo puede verse perfecto y tener BOM, espacios duros, tabulaciones o saltos de línea que el aplicativo no admite.

¿Qué hago si el error no indica la línea?

Medí el largo de todas las líneas, buscá las que difieren y revisá el patrón. Si todas miden lo correcto, dividí el archivo por mitades hasta aislar el registro defectuoso.

¿Conviene abrir el TXT con Excel para revisarlo?

Para mirarlo sí, pero no lo guardes desde Excel: puede quitar ceros iniciales, cambiar la codificación o agregar comillas. Si necesitás corregir, editá el archivo con un editor de texto y guardalo como ANSI.