File size

 BBS: Inland Empire Archive
Date: 04-17-92 (21:30)             Number: 91
From: STEVE HALKO                  Refer#: NONE
  To: ZACK JONES                    Recvd: NO  
Subj: File size                      Conf: (2) Quik_Bas
  In a msg of <15 Apr 92>, Zack Jones mused:


ZJ> I'm trying to find the fastest way for me to find the length of a
ZJ> file.  I know LOF shows the size in bytes.  What I want to know is how
ZJ> many lines there are in an ASCII text file that I open.  I can count
ZJ> the number of lines as I read the file using a line input statement,
ZJ> but is there a faster way than using a do while loop to read the file
ZJ> and count it line by line?  All help is greatly appreciated.

  The fastest way is to read the file as binary, and read it in large
  chunks.  If your text file is less than 32K, you can read it in in one
  large chunk:


  'LINECNT.BAS
  DEFINT A-Z

  INPUT "Filename: "; FileName$
  FileNr = FREEFILE
  OPEN FileName$ FOR BINARY AS FileNr
  CrLf$ = CHR$(13) + CHR$(10)
  Length = LOF(FileNr)
  Buffer$ = SPACE$(Length)     'Create a buffer the length of the file
  GET FileNr, , Buffer$        'Read entire file at once
  CLOSE FileNr
  LineCount = 0
  Start = 1
  'Now go thru and find CR/LFs:
  DO
     Cr = INSTR(Start, Buffer$, CrLf$)    'Find the next CR/LF
     IF Cr THEN                           'If CR/LF found
          LineCount = LineCount + 1       'Increment count
          Start = Cr + 2                  'Skip over CR/LF to start
                                          'search for next CR/LF
     ELSE
          EXIT DO                         'If no more CR/LF
     END IF
  LOOP WHILE Start < Length
  PRINT "There are"; LineCount; " lines in "; FileName$
  END


  If your text file is larger than 32K, then just read as many chunks as
  you need, and process each chunk separately.

 * SLMR 2.1a * Common sense is not so common.

--- DB B1065/002487
 * Origin: Gulf Coast BBS -QuickSHARE #2- (904)563-2547 HST/V.32bis (1:365/12)
Outer Court
Echo Basic Postings

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