It's true that dynamicaly can't create meters, but if the number of strings into the Schedule.txt file has a maximum value (I used 7), the #1 can be achived. Returning to my
above post, I'd do that this way:
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
[MeasureLuaScript]
Measure=Script
ScriptFile="#@#Test.lua"
FileToRead="#CURRENTPATH#Schedule.txt"
[MeasureStr1]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay1 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay1 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\1","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr2]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay2 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay2 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\2","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr3]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay3 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay3 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\3","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr4]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay4 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay4 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\4","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr5]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay5 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay5 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\5","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr6]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay6 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay6 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\6","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeasureStr7]
Measure=String
String=#Res#
DynamicVariables=1
IfMatch=^\*\*(.*)\*\*$
IfMatchAction=!SetOption MeterDisplay7 StringStyle "BOLD"
IfNotMatchAction=!SetOption MeterDisplay7 StringStyle "NORMAL"
RegExpSubstitute=1
Substitute="^(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)":"\7","(.*) @(.*)":"\1","(?m)^\-\s*":""
[MeterDisplay1]
Meter=String
MeasureName=MeasureStr1
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay2]
Meter=String
MeasureName=MeasureStr2
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay3]
Meter=String
MeasureName=MeasureStr3
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay4]
Meter=String
MeasureName=MeasureStr4
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay5]
Meter=String
MeasureName=MeasureStr5
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay6]
Meter=String
MeasureName=MeasureStr6
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
[MeterDisplay7]
Meter=String
MeasureName=MeasureStr7
X=0r
Y=0R
W=200
H=20
SolidColor=0,0,0,100
FontFace=Segoe UI
FontSize=11
FontColor=255,255,0
SolidColor=0,0,0,1
AntiAlias=1
Text=%1
ClipString=1
DynamicVariables=1
Test.lua (save it in the @Resources folder):
Code: Select all
function Initialize()
sFileToRead = SELF:GetOption('FileToRead')
end
function Update()
hReadingFile = io.open(sFileToRead)
sAllText = hReadingFile:read("*all")
sAllText = string.gsub(sAllText, "\t", " ")
io.close(hReadingFile)
SKIN:Bang('!SetVariable', 'Res', tostring(sAllText))
end
Here I used pieces of code taken from
FlyingHyrax.