BBS: Inland Empire Archive Date: 04-16-92 (19:55) Number: 174 From: PAUL LEONARD Refer#: NONE To: ZACK JONES Recvd: NO Subj: File Size Conf: (2) Quik_Bas
On or about <Apr 15 16:46>, Zack Jones (1:387/905.1) scribbled: ZJ> I'm trying to find the fastest way for me to find the length of a file. ZJ> I know LOF shows the size in bytes. What I want to know is how many ZJ> lines there are in an ASCII text file that I open. I ZJ> can count the number ZJ> of lines as I read the file using a line input statement, but is there a ZJ> faster way than using a do while loop to read the file and count it line ZJ> by line? All help is greatly appreciated. ======================================================================== CONST recsize = 1024 'up to 32767 DIM rec AS STRING * recsize delimiter$ = CHR$(13) INPUT "File to read"; in$ OPEN in$ FOR RANDOM AS #1 LEN = recsize DO UNTIL EOF(1) GET #1, , rec$ DO delimiter% = INSTR(delimiter% + 1, rec$, delimiter$) IF delimiter% THEN lines% = lines% + 1 LOOP WHILE delimiter% LOOP PRINT in$; " has"; lines%; "lines." CLOSE 1 END ============================================================================ Not all that elegant, but it's faster than sequential input. Even with a small buffer like 1K (the 1024 record size), on average it read a 68K text file (about 1500 lines) in about 0.5 seconds while sequential LINE INPUT took about 3.3 seconds. Later, ptl (I saw a great tagline today - "Every now and then an innocent man is sent to the legislature.") --- msged 2.07 * Origin: PTL Pointwork (1:140/23)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET