<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=86902&amp;view=findpost&amp;p=644684</guid>
        <pubDate>Mon, 14 Mar 2005 18:42:00 +0000</pubDate>
        <title>Чтение параметра REG_MULTI_SZ (мультистроковый параметр)</title>
        <link>https://forum.sources.ru/index.php?showtopic=86902&amp;view=findpost&amp;p=644684</link>
        <description><![CDATA[s-mike: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TExRegistry = class(TRegistry)</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;function ReadStrings(const ValueName: String): String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">function TExRegistry.ReadStrings(const ValueName: String): String;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;ValueType : DWORD;</div><div class="code_line">&nbsp;&nbsp;ValueLen &nbsp;: DWORD;</div><div class="code_line">&nbsp;&nbsp;P, Buffer : PChar;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Result := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;SetLastError(RegQueryValueEx(CurrentKey, PChar (ValueName), nil,</div><div class="code_line">&nbsp;&nbsp; &nbsp;@ValueType, nil, @ValueLen));</div><div class="code_line">&nbsp;&nbsp;if GetLastError = ERROR_SUCCESS then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ValueType = REG_MULTI_SZ then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;GetMem(Buffer, ValueLen);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;RegQueryValueEx(CurrentKey, PChar(ValueName), nil, nil, PBYTE(Buffer), @ValueLen);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;P := Buffer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;while P^ &#60;&#62; #0 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Result &#60;&#62; &#39;&#39; then </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result := Result + sLineBreak;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result := Result + P;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Inc(P, lstrlen(P) + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FreeMem (Buffer);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;raise ERegistryException.Create (&#39;String list expected&#39;);</div><div class="code_line">&nbsp;&nbsp;end</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp;raise Exception.Create (&#39;Unable read MULTI_SZ value&#39;);</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<strong class='tag-b'>Автор:</strong> <a class='tag-url' href='http://forum.sources.ru/index.php?showuser=19443' target='_blank'>Rouse_</a>]]></description>
        <author>s-mike</author>
        <category>Системные функции, WinAPI, работа с железом</category>
      </item>
	
      </channel>
      </rss>
	