var filename: string; sr: TStreamReader; sl: TStringList; total, blocksize: integer; begin filename := 'thefilenamegoeshere'; sl := TStringList.Create; sr := TStreamReader.Create(filename, true); sl.Capacity := sr.BaseStream.Size div 100; total := 0; // Total number of lines in the file (after it is read in) blocksize := 10000; // The number of lines per "block" try sl.BeginUpdate; try while not sr.EndOfStream do begin sl.Clear; while not (sl.Count >= blocksize) do begin sl.Add(sr.ReadLine); total := total + 1; if (sr.EndOfStream = true) then break; end; // Handle the current block of lines here end; finally sl.EndUpdate; end; finally sr.Free; sl.Free; end; end;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter