Skip to content

Commit cce528a

Browse files
committed
2 parents 859c93a + 81f2d51 commit cce528a

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
VBA CSV interface is a class module developed to accomplish the data exchange task between VBA arrays and CSV files at high speed. Projects from [@sdkn104](https://github.com/sdkn104/VBA-CSV) and [@Senipah](https://github.com/Senipah/VBA-Better-Array), both on Github, were used for comparative performance purposes.
88

9-
The parser is compatible with those CSV files compliant with the RFC-4180 standard, but add some useful features like:
9+
The parser is compatible with those CSV files compliant with the RFC-4180 specs, but add some useful features like:
1010
* In-line comments (with a user-defined character). See [Papa Parse](https://www.papaparse.com/) project.
1111
* Skip blanks lines and empty ones.
1212
* User-defined escape character (option not available in _Power Query for Excel 2019_ and with some inconsistences when use the _From Text(Legacy)_ wizard)[[1]](#1).

docs/home/getting_started.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ description: "Introduction to the VBA CSV interface class."
2222
{:toc}
2323
</details>
2424

25-
In order to be able to use `CSVinterface.cls` within your project, please review the [installation instructions](https://ws-garcia.github.io/VBA-CSV-interface/home/installation.html).
25+
In order to be able to use `CSVinterface.cls` within your project, please review the installation instructions by clicking the button below.
2626

27-
The CSV files are special kind of tabulated plain text data container widely used in data exchange. There is no globally accepted standard format for that kind of files, however, out there are well formed standards such as [RFC-4180](https://www.ietf.org/rfc/rfc4180.txt) proposed by The Internet Society.
27+
[Installation](https://ws-garcia.github.io/VBA-CSV-interface/home/installation.html){: .btn .btn-green }
28+
29+
The CSV files are special kind of tabulated plain text data container widely used in data exchange. There is no globally accepted standard format for that kind of files, however, out there are well formed specs such as [RFC-4180](https://www.ietf.org/rfc/rfc4180.txt) proposed by The Internet Society.
2830
Although many solutions has been developed for work with CSV files into VBA, including projects from [@sdkn104](https://github.com/sdkn104/VBA-CSV) and [@Senipah](https://github.com/Senipah/VBA-Better-Array) on GitHub, the performance philosophy conduce me to the development of a VBA class module that allows users exchange data between VBA arrays and CSV files at superior speed for the VBA programing language.
2931

3032
## Philosophy
@@ -94,8 +96,8 @@ ENC = CSVix.FileEncoding
9496
## Benchmark
9597
The benchmark provided here is focused on the supposed most critical operation, this is the parse one when working with CSV files. Although, benchmark for the exportation procedure is given on.
9698

97-
The class was tested against two solutions (the one from [@Senipah](https://github.com/Senipah/VBA-Better-Array) and the other from [@sdkn104](https://github.com/sdkn104/VBA-CSV)) using a laptop running `Win 10 Pro x64, Intel® Core™ i7-4500U CPU @1.80-2.40 GHz, 8 GB RAM, Excel 2019 x86`. The test works in two ways, 100K calls to the import procedure over three (3) different files, each of this with three records (3) and four fields (4) or one (1) call to the import procedure when parsing the larger files. In all cases, the overall work load is 1.2MM of fields. The CSV files are:
98-
* _RFC-4180_OH.csv_: **OH**- Only the teaders are quoted (4 fields)
99+
The class was tested against two solutions (the one from [@Senipah](https://github.com/Senipah/VBA-Better-Array) and the other from [@sdkn104](https://github.com/sdkn104/VBA-CSV)) using a laptop running `Win 10 Pro x64, Intel® Core™ i7-4500U CPU @1.80-2.40 GHz, 8 GB RAM, Excel 2019 x86`. The test works in two ways, 100K calls to the import procedure over three (3) different files, each of this with three records (3) and four fields (4), or one (1) call to the import procedure parsing a larger file. In all cases, the overall work load is 1.2MM of fields. The CSV files are:
100+
* _RFC-4180_OH.csv_: **OH**- Only the headers are quoted (4 fields)
99101
* _RFC-4180_HF.csv_: **HF**- Half of fields are quoted (6 fields)
100102
* _RFC-4180_AF.csv_: **AF**- All fields are quoted (12 fields)
101103
* *Demo_400k_records.csv*: **LargeF**- 1.2MM fields.
@@ -160,7 +162,7 @@ In the above results, the 2nd value, for cells with two values, is obtained when
160162
>Keep in mind that not all CSV files can be successful imported using the previous tweaking.
161163
{: .text-grey-dk-300 .bg-yellow-000 }
162164

163-
The image bellow shows the overall performance for the imports and exports operations from the CSV interface class. Notice, specials syntax CSV’s will take about 1.8x more time to be parsed due the parser expands its syntax analysis range. In the same way, but in less magnitude, the exportation procedure will have an overheat when the instance is setting up to be RCF-4180 standard compliant.
165+
The image bellow shows the overall performance for the imports and exports operations from the CSV interface class. Notice, specials syntax CSV’s will take about 1.8x more time to be parsed due the parser expands its syntax analysis range. In the same way, but in less magnitude, the exportation procedure will have an overheat when the instance is setting up to be RCF-4180 compliant.
164166

165167
![BenchMark](Benchmark.png)
166168

docs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ VBA CSV interface is a class module developed to accomplish the data exchange ta
1414

1515
## Advantages
1616
* Writes and reads files at high speed.
17-
* Supports those CSV's compliant with the RFC-4180 standard.
18-
* Supports commented lines, empty lines an blank ones. See [Papa Parse](https://www.papaparse.com/) project.
17+
* Supports those CSV's compliant with the RFC-4180 specs.
18+
* Supports commented lines, empty lines and blank ones. See [Papa Parse](https://www.papaparse.com/) project.
1919
* User have the option to import only certain range of records from given CSV file.
2020
* Auto exclude any quote mark when data is imported.
21-
* Simple code logic that allows you easy modify and enhance it!
21+
* Simple code logic that allows you easy modify and enhance it!

0 commit comments

Comments
 (0)