Many thansk for this improvement.
I spent some time playing with XYplorer tag.dat file. The link above to XYplorer forum contains outdated information for file version 3. It has less number of extra fields (now 16 for version 19.70+) and less number of extra field types, though it is correct in general. Actual format saves file color value, then list of tags, 16 extra fields and comment.
Some more information about tag.dat file format from XYplorer manual. It can be found in CHM help with "tag.dat" search, but I feel it tricky to navigate here-and-there inside CHM with poor bokmarking features, so I desided just to read official PDF from site
https://www.xyplorer.com/download/XYplorerHelp.pdf
Page 345 says:
Code: Select all
The Database: tag.dat
====================
All tag data are retained across sessions and stored in one file, tag.dat, located in the application data
folder. The file is kept in an open, simple, and human-friendly text format (UTF-16 Text File) so that you
can easily edit it manually using an editor or programmatically using any scriptable software.
File Format of the XYplorer Tag Database (version 5 -- from 19.70 onwards)
Line 1: Header and version info: XYplorer File Tags v5
Line 2: (empty)
Line 3: Labels:
XYplorer Help
346
Line 4: Label schemes, separated by ";". Each scheme: Name|TextColor|BackColor. Colors are in
RRGGBB.
Line 5: (empty)
Line 6: Extra Tags:
Line 7-22: Extra Tag Definitions: Caption|TypeID|0|0||||| . Some fields are reserved for future use.
Line 23: (empty)
Line 24: Storage: ...
Line 25: (empty)
Line 26: Data:
Line 27: Tagged item #1: Full filename|LabelID|Tags|Extra1|Extra2|Extra3|Extra4|Extra5|Extra6|
Extra7|Extra8|Extra9|Extra10|Extra11|Extra12|Extra13|Extra14|Extra15|Extra16|Comment
Line 28: Tagged item #2: ... etc. ...
Documentation says
Full filename
but page 66 says it can be
relative
.
Example for field of "list" type - TypeID=5 (popup list of predefined values, other types just have no predefined values):
Code: Select all
First Field Caption|5|0|0|many;predefined;field;values|||| - it is for extra1 field
Second Field Caption|4|0|0||||| - it is for extra2 field
Third Field Caption|0|0|0||||| - it is for extra3 field
Example of stored file metadata:
Code: Select all
file name| <color number> | [file,tag,list] |ex1|ex2|ex3|...||||||||||...|ex15|ex16|comment
file name|7|file,tag,list|many|2|field 3 - any text|...||||||||||...|ex15|ex16|comment
Color field is always set, it has 0 if it was not changed by user. Here file color is 7, field ex1=many, field ex2=2 (displays as 2 stars), field ex3 value is "field 3 - any text"
TypeID (it is only important for field data conversion inside XYplorer, IMHO)
Code: Select all
0 - text
1 - number
2 - date
3 - checkbox
4 - rating stars (1-5)
5 - list
6 - location (path)
7 - icon (???)
8 - image (path)
9 - script (field data is shown as text)
All field types store text, not binary data. Every char is acceptable except vertical line. New line char is replaced with "printable" (¶) character, so each row in tag.dat describes a file.
Comment is the last field and accepts vertical line too. Other fields do not store vertical line as said on page 347.
Extra field "type" has no impact to data, you can save any value regardless field type. E.g. save some string value to number or date filed is ok.
Checkbox is a strange type. It is "unset" only when value is empty string, any other string is "set" state. So values "false", "0" or just line feed / space still correspond to "set" state. There is no chanse to guess whether checkbox is unset or value was not assigned at all. But anyway checkbox field is able to contain any text value.