If you "get some free time", this would be a nice thing to have for scripting users.
A Global .INI file that is loaded at Editor startup and written at Editor quit.
An associated Object, like the Scriptable Object, would have the values
loaded into it for Get and Set by the user's scripts, which would be fast
because they are "loaded into/from memory".
There should probably be an Update method in case the user wants to write the INI file.
And maybe Delete and/or ClearAll methods. (DeleteValue and DeleteSection ?)
And there could be [Session] and/or [Temp] sections that are not
written to the INI file on Exit or Update, so they are Editing Session-Temporary.
(this would be good for "First Time Script Run?" checks and other temp usage)
I would do them all as Strings and let the user mess with them,
or you could support types as in TMemIniFile.
Since you can run scripts from macros, I think this would also fix my desire
for an "auto-incrementing paste buffer" system.
That is, I could have a "Reset" script that would set a value to 0 or 1,
and then a "Get" script that would load the value into the Paste buffer
and increment / add-to the value for next time.
That's all I've thought about so far with this idea.
DONE: Global/Static/User/Scripting .INI file and Object
DONE: Global/Static/User/Scripting .INI file and Object
RJTE version 16.21 (Actual) - 64-bit
Win 10 Pro 64-bit 8 GB RAM Intel Core i7-6700 3.40 GHz SCSI Hard Drive 1 TB
Note: The signature is dynamic, not static,
so it may not show the correct version above
that was in use at the time of the post.
Win 10 Pro 64-bit 8 GB RAM Intel Core i7-6700 3.40 GHz SCSI Hard Drive 1 TB
Note: The signature is dynamic, not static,
so it may not show the correct version above
that was in use at the time of the post.
- Rickard Johansson
- Site Admin
- Posts: 6742
- Joined: 19 Jul 2006 14:29
Re: Global/Static/User/Scripting .INI file and Object
Created a new "ScriptSettings" object with the following methods:
A [Temp] section is not saved to the file, when the program is closed.
E.g. ScriptSettings.WriteBool("Temp","ShowUI",true).
Done in next release (v16.12).
Code: Select all
procedure DeleteKey(const Section, Ident: String)
procedure EraseSection(const Section: string)
function ReadBool(const Section, Ident: string; Default: Boolean): Boolean
function ReadDateTime(const Section, Name: string; Default: TDateTime): TDateTime
function ReadDate(const Section, Name: string; Default: TDateTime): TDateTime
function ReadFloat(const Section, Name: string; Default: Double): Double
function ReadInteger(const Section, Ident: string; Default: Integer): Integer
function ReadString(const Section, Ident, Default: string): string
function ReadTime(const Section, Name: string; Default: TDateTime): TDateTime
function SectionExists(const Section: string): Boolean
procedure UpdateFile;
function ValueExists(const Section, Ident: string): Boolean
procedure WriteBool(const Section, Ident: string; Value: Boolean)
procedure WriteDateTime(const Section, Name: string; Value: TDateTime)
procedure WriteDate(const Section, Name: string; Value: TDateTime)
procedure WriteFloat(const Section, Name: string; Value: Double)
procedure WriteInteger(const Section, Ident: string; Value: Integer)
procedure WriteString(const Section, Ident, Value: String)
procedure WriteTime(const Section, Name: string; Value: TDateTime)
E.g. ScriptSettings.WriteBool("Temp","ShowUI",true).
Done in next release (v16.12).
Re: DONE: Global/Static/User/Scripting .INI file and Object
THANKS.
That will come in very handy.
That will come in very handy.
RJTE version 16.21 (Actual) - 64-bit
Win 10 Pro 64-bit 8 GB RAM Intel Core i7-6700 3.40 GHz SCSI Hard Drive 1 TB
Note: The signature is dynamic, not static,
so it may not show the correct version above
that was in use at the time of the post.
Win 10 Pro 64-bit 8 GB RAM Intel Core i7-6700 3.40 GHz SCSI Hard Drive 1 TB
Note: The signature is dynamic, not static,
so it may not show the correct version above
that was in use at the time of the post.