<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10781</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10781&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Параметризированное работа с INI файлом - аналог IniRead».]]></description>
		<lastBuildDate>Mon, 13 Jul 2015 10:12:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95370#p95370</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong> я случайно кусок прихватил из готового скрипта. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Вот полностью</div><div class="fancy_spoiler"><p> </p><div class="codebox"><pre><code>arIniErrorTXT :=  [&quot;отсутствует INI-файл&quot;                                     ; = 1
                  ,&quot;в имени переменной/её нет/ошибка в имени секции.&quot;         ; = 2
                  ,&quot;переменная не может быть пустой.&quot;                         ; = 3
                  ,&quot;переменная содержит недопустимое значение.&quot;               ; = 4
                  ,&quot;резерв или ошибка в программе.&quot;]                          ; = 5  


;--------------------Чтение переменной из INI и проверка-------------------------------------                  
;ВХОД: 
;1-й ByRef OutputINI
;2-й ByRef Skay True/False  = тип выхода см. ВЫХОД  Вариант №1/№2
;3-й FilenameINI 
;При необходимости 
;4-й SectionINI умолчанию = &quot;&quot;
;5-й KeyINI умолчанию = &quot;&quot;

;ВЫХОД:
;1-й ByRef OutputINI - считанное значение
;В Return(Вариант №1)  True/False/-1 - Ок/Пустая переменная/В ByRef Skay код ошибки
;В Return(Вариант №2)  True/False/-1 - Ок/Пустая переменная/Автовыход из игры(не передаётся)


fnIniReadAndСheck(ByRef OutputINI, ByRef Skay := False, FilenameINI, SectionINI := &quot;&quot;, KeyINI := &quot;&quot;)
{
  if FileExist(FilenameINI)
        IniRead, OutputINI, %FilenameINI%, % SectionINI, % KeyINI
      Else
        {
          NumError := 1
          If (Skay)
              {
                Skay  :=  NumError
                Return -1
              }
            Else
              {
                fnIniErrorOut(NumError, FilenameINI, SectionINI,  KeyINI) ; нет файла
                Return
              }
        } 

  if ((OutputINI) &amp;&amp; (OutputINI != &quot;ERROR&quot;))
        Return True
       
  If (!OutputINI) ; Пустая переменная
        Return False
       
  If (OutputINI = &quot;ERROR&quot;) ;
        {
          NumError := 2
          If (Skay)
              {
                Skay  :=  NumError
                Return -1
              }
            Else
              fnIniErrorOut(NumError := 2, FilenameINI, SectionINI,  KeyINI) ; не верная переменная или секция
              Return
        }

}
;--------------------------------------------------------------------------------------------

;--------------------Диагностика об ошибках в INI (fnIniReadAndСheck)------------------------
fnIniErrorOut(NumError := 0, FilenameINI := &quot;&quot;, SectionINI := &quot;&quot;,  KeyINI := &quot;&quot;, SecWait :=  15)
{
  Error_TXT :=  arIniErrorTXT[NumError]
  cWait :=  SecWait
  Gosub lMinWinGameKeys
    cTitle      :=  &quot;Ошибка в INI-файле&quot; ;Титул MsgBox
    cMsgErr     :=  &quot;`n Ошибка : &quot; Error_TXT
    cTxtErrAd1  :=  &quot;`n Файл : &quot; FilenameINI
    cTxtErrAd2  :=  &quot;`n Секция = [&quot; SectionINI &quot;] `n Ключ = &quot; KeyINI
    ;cWait       :=  35
    cTxtErrAd3  :=  &quot;`n`n Выход из программы(Тайм-аут = &quot; cWait &quot; сек).&quot;
      MsgBox % сMsgBoxError_Ok, %cTitle%, %cMsgErr% %cTxtErrAd1% %cTxtErrAd2% %cTxtErrAd3%, %cWait%      
    Gosub lExitTotalKeys
Return
}
;--------------------------------------------------------------------------------------------</code></pre></div></div></div><p>Осталось понять что надо написать в заголовке, что бы из функции вызвать функцию по переданным значениям.<br />Я про это - <strong>fnIniReadAndСheck(ByRef OutputINI, ByRef Skay := False, FilenameINI, SectionINI := &quot;&quot;, KeyINI := &quot;&quot;)</strong>.</p><p>А то сравнение ключей меня запутает окончательно. <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p><br /><p>P.S. Хотя можно подпрограмму, а то с функцией что то не складывается. Значит передать просто метку.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 13 Jul 2015 10:12:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95370#p95370</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95369#p95369</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>fnTest(<strong>OutputVarINI</strong>,varFilenameINI, varSectionINI, varKeyINI)</p></blockquote></div><p>Какие то хитрые новейшие приёмы. Поделитесь с нами тайным назначением первого параметра - OutputVarINI?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 13 Jul 2015 09:54:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95369#p95369</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95364#p95364</link>
			<description><![CDATA[<p>Сорри.... я <em>&quot;дурилка картонная&quot;</em>(не знаю что это).</p><p>Всё работает </p><div class="codebox"><pre><code>a:= &quot;Main&quot;
varFilenameINI:=&quot;c:\AHK\KeysExtSkyrim\KeysExtSkyrim.res\Bats.ini\sample.ini&quot;
OutputVarINI := fnTest(0, varFilenameINI, a, &quot;Name&quot;)
;OutputVarINI := fnTest(0, varFilenameINI, &quot;Main&quot;, &quot;Name&quot;)
MsgBox %OutputVarINI%
return

fnTest(OutputVarINI,varFilenameINI, varSectionINI, varKeyINI)
{

IniRead, OutputVarINI, %varFilenameINI%, % varSectionINI, % varKeyINI

Return OutputVarINI
}</code></pre></div><p>Видимо где опечатался.</p><p>Спасибо тебе <strong>Alectric</strong>, а я думал ты прикалываешься.</p><p>Решено.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 13 Jul 2015 04:31:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95364#p95364</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95363#p95363</link>
			<description><![CDATA[<p><strong>YMP</strong> да я же проверял - не получилось. </p><p>Покажите пример с IniRead с кавычками, может я где то накосячил...</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 13 Jul 2015 04:17:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95363#p95363</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95362#p95362</link>
			<description><![CDATA[<p>А у меня нет кавычек, я даже код не привёл или вы про что?</p><p>Ааа... думаете, если секцию и ключ заключить в кавычки то сработает?</p><p>Нет, я так уже пытался сделать... мимо, т.е. не получается.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 13 Jul 2015 04:14:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95362#p95362</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95361#p95361</link>
			<description><![CDATA[<p>Блин, неужели проблема действительно в этом? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 13 Jul 2015 04:13:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95361#p95361</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95360#p95360</link>
			<description><![CDATA[<p>Не переменные в функцию передаются в кавычках, на сколько мне известно.<br /></p><div class="codebox"><pre><code>myfunc(&quot;text&quot;)

myfunc(a)
{
 Msgbox,% a
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Mon, 13 Jul 2015 04:08:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95360#p95360</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95359#p95359</link>
			<description><![CDATA[<p>Приветствие, всем.</p><p>Как динамически произвести скажем чтение из ini-файла на уровне функции.</p><p>Например написал функцию <strong>fnReadINI(OutputVarINI,varFilenameINI, varSectionINI, varKeyINI)</strong><br />C параметрами <strong>OutputVarINI </strong>и <strong>varFilenameINI</strong> всё нормально, но вот Секция и Ключ это не переменные.<br />Попробовал использовать модификатор <strong>ByRef</strong>, это конечно не помогло.</p><br /><p>Поискал и нашёл <a href="https://github.com/denolfe/AutoHotkey/blob/master/lib/Ini.ahk"> <span class="bbu">на <strong>GitHub.com</strong> библиотеку <strong>Ini.ahk</strong></span></a>, но увы она не работает или работает не так как мне нужно.</p><p>Подскажите мне, что ни будь готовое и работающее, если не сложно.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 13 Jul 2015 03:55:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95359#p95359</guid>
		</item>
	</channel>
</rss>
