<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/</id><updated>2022-04-07T11:30:04.121000Z</updated><subtitle>Recent posts to CmpDynamicText.DynamicTextRegisterFile usage</subtitle><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#cb09" rel="alternate"/><published>2022-04-07T11:30:04.121000Z</published><updated>2022-04-07T11:30:04.121000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com1bac2e597ed73fa7b95d68edec385d0ac05319eb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Marcel,&lt;br/&gt;
here you are. Sorry for the delay.&lt;/p&gt;
&lt;p&gt;You'll have to adjust LoadNames.defaultfilename and LoadNames.outputfilename according to your system. I attached the custom "mytl" in the projectarchive.&lt;/p&gt;
&lt;p&gt;If you set a breakpoint into LoadNames.LoadCustomFile, you'll see that resUnreg is 1 (generic fail).&lt;/p&gt;
&lt;p&gt;To keep it short, I did not implement the logic which asks for default text if LoadNames.xCustom is true, because if unregistering fails it won't work anyway.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#54d8" rel="alternate"/><published>2022-03-15T06:11:31.288000Z</published><updated>2022-03-15T06:11:31.288000Z</updated><author><name>m.prestel</name><uri>https://forge.codesys.com/u/mprestel/</uri></author><id>https://forge.codesys.com3defd2f9f0989a8f927736677dbe69f56c2a5de5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I think it is best to provide a small example project at this point&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#1b83" rel="alternate"/><published>2022-03-08T22:05:01.109000Z</published><updated>2022-03-08T22:05:01.109000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com9e4b869faafeb605fc2c42cef2e837d8066ec8c7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If it is not possible to understand why unregistering the default file fails, I think it's better to go the build-from-scratch way...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#58e2" rel="alternate"/><published>2022-03-04T11:38:16.231000Z</published><updated>2022-03-04T11:38:16.231000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com052ea009b5c587ab6b47437e100ad48cafe0be85</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I cannot seem to be able to change default texts. They are NOT changed from the default file even if I unregister it. But texts with IDs not present in the default file are imported successfully.&lt;/p&gt;
&lt;p&gt;"outputfilename" is '/opt/data/mytl.txt'&lt;br/&gt;
It has only "Id;Default" instead of "Id;Default;it;en;de" columns.&lt;/p&gt;
&lt;p&gt;LoadCustomFile (does not overrides default texts)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;// Current language save/restore because on text reload the language reverts to ""&lt;/span&gt;
&lt;span class="err"&gt;// Even without it, so in the "" CURRENTLANGUAGE case, default texts are not overridden&lt;/span&gt;
&lt;span class="err"&gt;size := SysFile.SysFileGetSize(szFileName := outputfilename, pResult := ADR(res));&lt;/span&gt;
&lt;span class="err"&gt;currentLanguage := VisuElems.CmpDynamicText.DynamicTextGetCurrentLanguage();&lt;/span&gt;
&lt;span class="err"&gt;IF res = CmpErrors.Errors.ERR_OK AND size &amp;gt; 24 THEN&lt;/span&gt;
&lt;span class="err"&gt;    VisuElems.CmpDynamicText.DynamicTextUnRegisterFile(szFile := '/opt/Project/PlcLogic/visu/mytl.txt');&lt;/span&gt;
&lt;span class="err"&gt;    VisuElems.CmpDynamicText.DynamicTextRegisterFile(szFile := outputfilename);&lt;/span&gt;
&lt;span class="err"&gt;    VisuElems.CmpDynamicText.DynamicTextLoadDefaultTexts();&lt;/span&gt;
&lt;span class="err"&gt;    // DynamicTextReloadTexts() in place of DynamicTextLoadDefaultTexts() does not work either&lt;/span&gt;
&lt;span class="err"&gt;    VisuElems.CmpDynamicText.DynamicTextChangeLanguage(stLanguage := currentLanguage);&lt;/span&gt;
&lt;span class="err"&gt;    VisuGlobals.customTextlist := TRUE;&lt;/span&gt;
&lt;span class="err"&gt;ELSE&lt;/span&gt;
&lt;span class="err"&gt;    VisuGlobals.customTextlist := FALSE;&lt;/span&gt;
&lt;span class="err"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;RemoveCustomFile (works and removes default texts that were only in the "override" text list but not in the system one)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;currentLanguage := VisuElems.CmpDynamicText.DynamicTextGetCurrentLanguage();&lt;/span&gt;
&lt;span class="err"&gt;VisuElems.CmpDynamicText.DynamicTextUnRegisterFile(szFile := outputfilename);&lt;/span&gt;
&lt;span class="err"&gt;SysFile.SysFileDelete(szFileName := outputfilename);&lt;/span&gt;
&lt;span class="err"&gt;VisuElems.CmpDynamicText.DynamicTextRegisterFile(szFile := '/opt/Project/PlcLogic/visu/mytl.txt');&lt;/span&gt;
&lt;span class="err"&gt;VisuElems.CmpDynamicText.DynamicTextReloadTexts();&lt;/span&gt;
&lt;span class="err"&gt;VisuElems.CmpDynamicText.DynamicTextChangeLanguage(stLanguage := currentLanguage);&lt;/span&gt;
&lt;span class="err"&gt;VisuGlobals.customTextlist := FALSE;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;VisuGlobals.customTextlist is used to ask for the text with DynamicTextGetDefaultTextW if TRUE (because otherwise one gets the language-specific text) and with DynamicTextGetTextW if FALSE.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#fc72" rel="alternate"/><published>2022-02-28T10:28:14.222000Z</published><updated>2022-02-28T10:28:14.222000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com96d5eccb5e7283a801689b406cdcc2de212a127c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry, I messed up with the import file (not the globaltextlist.txt), the one that has the textlist as the first column.&lt;/p&gt;
&lt;p&gt;I'd like to keep the original file if something goes wrong as a fallback solution, unregistering it if the other file is valid.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#f563" rel="alternate"/><published>2022-02-28T10:22:02.844000Z</published><updated>2022-02-28T10:22:02.844000Z</updated><author><name>m.prestel</name><uri>https://forge.codesys.com/u/mprestel/</uri></author><id>https://forge.codesys.comac430b835f1cdae4e1a744f8693d4af69e0faf3b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;They use the same file format, they just have additional languages depending on what you added.&lt;/p&gt;
&lt;p&gt;Are you using the same file? Then a reload should be enough, no need to unregister and register.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#e105" rel="alternate"/><published>2022-02-28T07:13:57.863000Z</published><updated>2022-02-28T07:13:57.863000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com3bb4d7ee60eb261ce97cd03260e23a067122d9c2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Yes, but what's the right format for the file?&lt;br/&gt;
Is it the same as &amp;lt;textlistname&amp;gt;.txt or the one of globaltextlist.txt?&lt;br/&gt;
Should I unregister the previous file or not?&amp;lt;/textlistname&amp;gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#f29c" rel="alternate"/><published>2022-02-28T06:31:16.062000Z</published><updated>2022-02-28T06:31:16.062000Z</updated><author><name>m.prestel</name><uri>https://forge.codesys.com/u/mprestel/</uri></author><id>https://forge.codesys.coma398cd5589bd7336bd21c366e33844f5395b8697</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hey,&lt;br/&gt;
DynamicTextRegisterFile should do the trick I think.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br/&gt;
Marcel&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>CmpDynamicText.DynamicTextRegisterFile usage</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/14dd1254ec/?limit=25#faad" rel="alternate"/><published>2022-02-25T18:23:06.054000Z</published><updated>2022-02-25T18:23:06.054000Z</updated><author><name>sgronchi</name><uri>https://forge.codesys.com/u/sgronchi/</uri></author><id>https://forge.codesys.com35b0fbe153c25d214153aa1d80c19eeca4e91a2e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I need to load at runtime a TextList, so I wandered around CmpDynamicText library and saw DynamicTextRegisterFile, DynamicTextUnregisterFile and so on.&lt;/p&gt;
&lt;p&gt;Is there an usage example somewhere, or at least someone who has make it work?&lt;/p&gt;
&lt;p&gt;Or should I replicate TextList infrastructure in IEC code instead, something like the following pseudocode?&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PROGRAM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;LoadTexts&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="n"&gt;VAR_INPUT&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;xExecute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;END_VAR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;VAR_OUTPUT&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;textList&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="k"&gt;ARRAY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;0..255&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;OF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WSTRING&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;END_VAR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="nf"&gt;VAR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UINT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;_xExecute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;parsed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="k"&gt;ARRAY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;0..255&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;OF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WSTRING&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;pbyText&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;POINTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;BYTE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;END_VAR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="nf"&gt;VAR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CONSTANT&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;pstTextList&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'MyTextList'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;END_VAR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="k"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xExecute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;AND&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;_xExecute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;open&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;parsed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;valid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;FOR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DO&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;textList&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;parsed&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;END_FOR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;ELSE&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;FOR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DO&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UINT_TO_STRING&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;just&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;table&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;pbyText&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;VisuElems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CmpDynamicText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DynamicTextGetTextW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;pstTextList&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pstTextList&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;pstTextIndex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ADR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pbyText&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AND_THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pbyText&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;Stu&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StrCpyW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="n"&gt;pBuffer&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;ADR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parsed&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="n"&gt;iBufferSize&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SIZEOF&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parsed&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="n"&gt;pStr&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pbyText&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;END_IF&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;END_FOR&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;END_IF&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;END_IF&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;_xExecute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xExecute&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Nonetheless, it would be a pity to roll a poor man's version of the already builtin infrastructure.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>