I was reviewing some code changes, and I noticed some of the lines were quite different in length.
I wrote some code to figure out why. I thought initially that I would just create a cursor with a field of length 250 and then use the APPEND FROM …SDF command to put the entire file into a cursor. However, I realized that wouldn’t work because one of the lines was several thousand characters long. So I thought I’d had to use the low level file functions, such as FREAD(). I also thought about appending the entire file into a memo field using the APPEND MEMO command
Then I remembered the ALINES function which served the job quite nicely. I just wanted to show the longest line lengths before and after modifications.
SET ALTERNATE TO t.txt
SET ALTERNATE on
SET ALTERNATE to
PROCEDURE ShowLens(cFile as String)
CREATE CURSOR lengths (Line i, len i)
FOR i = 1 TO n
INSERT INTO lengths VALUES (i,LEN(aa[i]))
SELECT TOP 10 line,len FROM lengths ORDER BY 2 DESC INTO CURSOR result
?JUSTFNAME(cFile), "total lines = ",n