Beispiel #1
0
        public long CountRowsUsingCursivelyArrayInput(CsvFile csvFile)
        {
            var visitor = new RowCountingVisitor();

            CsvSyncInput.ForMemory(csvFile.FileData).Process(visitor);
            return(visitor.RowCount);
        }
Beispiel #2
0
        public long CountRowsUsingCursivelyMemoryMappedFileInput(CsvFile csvFile)
        {
            var visitor = new RowCountingVisitor();

            CsvSyncInput.ForMemoryMappedFile(csvFile.FullPath).Process(visitor);
            return(visitor.RowCount);
        }
Beispiel #3
0
        public long CountRowsUsingCursivelyRaw(CsvFile csvFile)
        {
            var visitor   = new RowCountingVisitor();
            var tokenizer = new CsvTokenizer();

            tokenizer.ProcessNextChunk(csvFile.FileData, visitor);
            tokenizer.ProcessEndOfStream(visitor);
            return(visitor.RowCount);
        }
Beispiel #4
0
        public async Task <long> CountRowsUsingCursivelyAsyncFileStreamInput(CsvFile csvFile)
        {
            var visitor = new RowCountingVisitor();

            using (var stream = new FileStream(csvFile.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
            {
                await CsvAsyncInput.ForStream(stream).ProcessAsync(visitor);
            }

            return(visitor.RowCount);
        }
Beispiel #5
0
        public long CountRowsUsingCursivelyFileStreamInput(CsvFile csvFile)
        {
            var visitor = new RowCountingVisitor();

            using (var stream = new FileStream(csvFile.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan))
            {
                CsvSyncInput.ForStream(stream).Process(visitor);
            }

            return(visitor.RowCount);
        }