6 ms·
Commas are commonly used in text, too.
by ideamotor 1y ago
Commas are commonly used in text, too.
- susam 1y agoClearly they should have gone with BEL as the delimiter. printf "alice\007london\007uk\nbob\007paris\007france\n" > data.bsv I'm hoping no reasonable person would ever use BEL as punctuation or decimal separator.
- kmoser 1y agoOn the off chance you're not being facetious, why not ASCII 0 as a delimiter? (This is a rhetorical question.)
- defrost 1y agoThere are some decent arguments for BEL over NUL, however given you posed that as a rhetorical question I feel I can say little other than ding! ding! ding! winner winner, chicken dinner! Although BEL would drive me up the wall if I broke out any of my old TTY hardware.
- mastax 1y agoASCII has characters more or less designed for this 0x1C - File Separator 0x1D - Group Separator 0x1E - Record Separator 0x1F - Unit Separator So I guess 1F would be the "comma" and 1E would be the "newline."
- afiori 1y agohttps://stackoverflow.com/questions/8695118/what-are-the-file-group-record-unit-separator-control-characters-and-their-usage https://stackoverflow.com/questions/8695118/what-are-the-fil... I am pretty sure you shifted the meaning, the decimal separator is part of the atomic data it does not need a control character. You would use 1F instead of the comma/semicolon/tab and 1E to split lines (record means line just like in SQL). You could then use 1D to store multiple CSV tables in a single file.
- pasc1878 1y agoYes but then the text is not human readable or editable in a plain text editor. This would confuse most users of csvs they are not programmers they at most use text editors and Excel.
- afiori 1y agoI am not proposing to do this, but if you were to use ascii separators you would do it this way
- dessimus 1y agoIf one was going to use a non-printable character as a delimiter, why wouldn't they use the literal record separator "\030"?
- susam 1y agoEvery time you cat a BSV file, your terminal beeps like it's throwing a tantrum. A record separator (RS) based file would be missing this feature! In other words, my previous comment was just a joke! :) By the way, RS is decimal 30 (not octal '\030'). In octal, RS is '\036'. For example: $ printf '\036' | xxd -p 1e $ printf '\x1e' | xxd -p 1e See also https://en.cppreference.com/w/cpp/language/ascii https://en.cppreference.com/w/cpp/language/ascii for confirmation.
- kevindamm 1y ago...and excel macros
- LoganDark 1y agoSure, let's put quotation marks around all number values. Oh wait. lol