Choose records, cells or words
A catalog’s product count, filled fields and description volume are distinct measures. Words do not establish products, and physical lines do not establish records.
Specify columns such as short and long descriptions, excluding headers and codes. Retain record keys for tracing without automatically counting them editorially. Otherwise codes can inflate apparent workload. The counter cannot infer fields’ business meaning.
Why line splitting fails
Informational RFC 4180 describes a common CSV format rather than every dialect. Quoted fields may include commas and newlines; internal quotes double; headers are optional.
Splitting on every newline or comma is insufficient. Use a source-compatible parser and test embedded cases. Record semicolon and other conventions. Renaming or visually substituting separators does not safely interpret structure.
Three physical lines, two records, one data row
The exact sample starts with Italian nome,nota, followed by Ada and a quoted note containing prima, newline, seconda. Python’s standard CSV reader yields two records of two fields from three physical lines. Excluding the header leaves one data record.
Whole source has five counter words, note text two and a separate data-field copy three. These are not people or product totals. The example separates parsing from linguistic counting.

Quotes are sometimes syntax
Delimiters protecting commas are not necessarily visible cell punctuation. Actual quotation marks must remain after parsing. Deleting all quotes cannot distinguish these roles.
RFC 4180 treats spaces as field content. Trimming edges is a separate cleanup. Define received versus corrected measurement and preserve both to distinguish new content, removed syntax and editorial changes.
Check decoding and separators
CSV remains encoded text. Repair wrong accents before measuring. Plausible totals do not validate letters. Test cells with accents, apostrophes and the actual separator.
Our importer is not a CSV table parser. Prepare chosen field text and paste into the counter. TXT assumes UTF-8; renaming CSV neither changes encoding nor parses columns. See TXT accents.
Spreadsheet display can transform data
Check import preview and columns. Identifiers may need exact text including leading zeroes. The counter cannot recover omitted data; verify a known original record.
Distinguish displayed values, formulas and deliverable text. Counting a copied result does not measure its formula; dates and formatted numbers also differ. Trace records to extracted text, especially for migrations.
Aggregate or count separately
Measure each field for individual limits; low averages do not excuse overlong descriptions. For total workload, sum field counts or aggregate with declared separators consistently.
Our characters exclude newlines and include spaces. Spaces inserted between cells add characters beyond field sums; newlines retain boundaries without adding to this indicator. Never concatenate words without boundaries. Record the chosen convention.
Reconcile fields before totals
Verify data records, empty selected fields and inclusions. Missing content is not automatically a completed zero-word description. Separate completeness from length.
Test simple, embedded-comma and quoted-newline records. The sample note must retain prima and seconda as two words. One word or three data records signals parsing trouble. Use reconciled fields, not raw line totals, for limits, estimates or Italian cartelle.
CSV structure and editorial text
| Object | Physical lines | CSV records | Site words | Site characters |
|---|---|---|---|---|
| nome,nota\r\nAda,"prima\r\nseconda" | 3 | 2 (header + data) | 5 | 27 |
| Note: prima\r\nseconda | 2 | Extracted field | 2 | 12 |
| Data copy: Ada\nprima\nseconda | 3 | Prepared text | 3 | 15 |
Sources and checks
- RFC Editor: RFC 4180 · Informational common CSV format, quoted fields, embedded breaks, spaces and escaped quotes