Page 1 of 1

Cuenta erronea de lineas en txt

Posted: Fri Jan 22, 2021 11:13 pm
by FranciscoA
Amigos.
Tengo un fichero .txt con 16 lineas de datos y varias columnas, sin ningún tipo de separador.
Si lo abro con un editor de texto, refleja correctamente la cantidad de lineas, pero no lo hace con las funciones MemoRead y MLCount.
Aqui está el código que estoy usando, y su respectivo fichero.txt.
Qué estoy omitiendo?

Code: Select all

#include "fivewin.ch"
Function Main()

local cFile := TrueName(".\Retenc.txt")
local cBuf  := MemoRead( cFile )
local nTotRows := MlCount(cBuf)

return MsgInfo(nTotRows)  //Informa sobre 32 lineas, y lo correcto es 16.
 
Este es el txt:

Code: Select all

3420733 02/07/2015           13,797.50              400.13              200.96           13,196.41
3423562 04/07/2015              833.00               24.16               12.13              796.71
3427777 05/07/2015            2,730.00               79.17               39.76            2,611.07
3438327 09/07/2015            5,929.00              171.94               86.36            5,670.70
3441056 11/07/2015            2,302.00               66.76               33.53            2,201.71
3443640 11/07/2015           10,824.50              313.91              157.67           10,352.92
3444982 12/07/2015            1,656.00               48.02               24.12            1,583.86
3450958 15/07/2015           34,676.46            1,005.62              505.06           33,165.78
3458989 18/07/2015            4,058.00              117.69               59.11            3,881.20
3461666 18/07/2015           16,986.00              492.60              247.40           16,246.00
3473188 23/07/2015            1,993.00               57.80               29.03            1,906.17
3475974 24/07/2015            3,500.50              101.52               50.98            3,348.00
3477974 25/07/2015            1,092.00               31.67               15.90            1,044.43
3490933 30/07/2015            8,616.00              249.87              125.49            8,240.64
3492572 31/07/2015            1,365.00               39.59               19.88            1,305.53
3493993 31/07/2015              310.00                8.99                4.51              296.50
Gracias de antemano.

Re: Cuenta erronea de lineas en txt

Posted: Fri Jan 22, 2021 11:16 pm
by FranciscoA
Se me olvidó mencionar que el txt es producto de la importación de un PDF, que lo hice en: http://www.somepdf.com/

Re: Cuenta erronea de lineas en txt

Posted: Fri Jan 22, 2021 11:57 pm
by hmpaquito
Te recomiendo que abras el archivo con Notepad Plus. Alli hay un botoncito que al pulsarlo te permitirá ver _ de control invisibles, que deben ser el problema.

Re: Cuenta erronea de lineas en txt

Posted: Sat Jan 23, 2021 3:42 am
by Armando
Francisco:

Tal vez hace falta definir el ancho de la línea

Code: Select all

        nAncho := 80
    nLineas := MLCOUNT(ALLTRIM(oRsDet:Fields("DET_DES"):Value),nAncho)
 
Saludos

Re: Cuenta erronea de lineas en txt

Posted: Sat Jan 23, 2021 3:26 pm
by TecniSoftware
Prueba con oFile := TTxtFile():New( cFile )

nLines: = oFile:nTLines

Saludos

Re: Cuenta erronea de lineas en txt

Posted: Sat Jan 23, 2021 3:36 pm
by FranciscoA
Paquito, Armando, Alejandro.
Gracias por sus sugerencias.
Probaré todas y después comento.

Re: Cuenta erronea de lineas en txt

Posted: Sat Jan 23, 2021 4:12 pm
by FranciscoA
Todas sus sugerencias funcionan.
Efectivamente, Notepad++ muestra todos _.

nTotRows:= MLCount(Alltrim(cBuf),250)

nTotRows:= oFile:nTLines

Muchas gracias.

Re: Cuenta erronea de lineas en txt

Posted: Sat Jan 23, 2021 5:57 pm
by Armando
Francisco:

Excelente, una de la muchas que te debemos :) .

Saludos