
Page generated from: SET-File_OnePage_v4.5.md
SET-File_OnePage_v4.5.md
Set|Files are a Human-and-AI readable data format – using strings as the fundamental data-type. Clean, clear, easy to read, easy to edit – smaller and simpler than other common formats. Set|File is the norm; Q-Set (.qset) is the same format with every default locked – see the Q-Set One-Page v4.5. A Set|File reader handles everything on this page as a matter of course; nothing is declared – if a file uses it, it is there. X-Set (.xset) adds loaded modules that bend core rules; it will not open in a plain reader – see the Specification, Appendix A.
Head – every file opens with three fixed lines
myconfig.setConformance|v4.5 – always written with the default | :[]:{}:|:\:!: ` – the first character is the separator used to read the line itself :[]:{}:;:\:,: ` (Group forms), : (per-line override), whitespace (in-group comment) – nothing else in [THIS-FILE] hands fields back exactly as written (structure unchanged). Both optional conventions directly after the comment marker (//>, #>) binds the comment to the following Group across empty lines alone on its line
- Names: letters, digits,
-, _; case-sensitive; unique within the file; ALL-CAPS recommended, not required
Reserved in any letter case: THIS-FILE, EOG, EOF
Close: empty line, next header, [EOG] at the start of a line, [EOF] / end of file
"Table" and "key|value" describe a Group's format, not a kind of Group – the application decides what lines mean
One-Line Group(s) – for very little content: [USER]::Username|Skippy::PW|1234::[EOG]
- The
:: directly after ] is the signal (a header is [NAME] then end-of-line); :: separates segments; must end ::[EOG]
Data containing :: is backtick-quoted: [X]::Url|http://a::b::[EOG]
Key-Value Group(s) – [=SETTINGS=] promises every line is exactly one Key|Value pair; a value may be [{TEXT-GROUP}]
Line(s) – an array of fields on
|: Protocol|RS232|9600!8!N!1!none
- The primary split is the format's; the nested split on
! is the application's, applied to a field on request; one level
A leading or trailing | is an empty field at that end
Per-line override: a line beginning with the slot-1 character then a one-shot primary delimiter: :!URL!https://x/?a=1|b=2
Escaping – \| and \! only; backslash is otherwise literal: \\server\share
- A field ending in
\ takes a space before the delimiter: C:\Web\ |next – the space "escapes" the pair
Quoted strings – a field whose first non-space character is the quote character (backtick) runs to the quote character before the next delimiter or end-of-line
- Everything inside is literal – pipes,
!, backslashes, spaces, ::; any other position is an ordinary character
Tables – first data line {id|name|email} names the fields; rows read into those positions; || empty; a row may stop early
- Appended fields
name:::value – a field containing ::: is an appended field wherever it sits; positional fields end at the first one
Kirk|Siqveland|AKA:::Cornelius Vogelgriff – no empty columns for everyone else, no truncation; tables only
A positional value that contains ::: is backtick-quoted
Text-Group(s) – [{LICENSE}] – content as-is from the next line to the mandatory [EOG]; not closed by empty lines or headers
- No escaping, no trimming, no delimiters; full UTF-8; line endings kept; the newline before
[EOG] is removed
Referenced from a field as [{LICENSE}]; anywhere in the file; unreferenced = a long comment
[THIS-FILE] – reserved; optional; first Group when present; author notes about the whole file
Author|… Created|… Description|… Generator|… – plus Trim|off, Encode|UTF-8, Localize|NFC|en-US|LTR
[EOF] – optional; at the start of a line; nothing after it is parsed
SetTags – a whole Set|File inside another file's comments:
{SETTAG:NAME} … {/SETTAG:NAME/}, each on its own line
- One space after the host comment marker on every line; the opening marker stands as line 1 of the head
- In-group comments take two spaces after the marker; in block comments lines start at column one
X-Set – .xset; same core plus loaded modules; first intended module: Nested Groups (close by name, explicit [EOG]`, fields are the floor)
SET-File_OnePage_v4.5 – www.setfiles.org