<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10781&amp;type=atom" />
	<updated>2015-07-13T10:12:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10781</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95370#p95370" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2015-07-13T10:12:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95370#p95370</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95369#p95369" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>fnTest(<strong>OutputVarINI</strong>,varFilenameINI, varSectionINI, varKeyINI)</p></blockquote></div><p>Какие то хитрые новейшие приёмы. Поделитесь с нами тайным назначением первого параметра - OutputVarINI?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2015-07-13T09:54:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95369#p95369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95364#p95364" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2015-07-13T04:31:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95364#p95364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95363#p95363" />
			<content type="html"><![CDATA[<p><strong>YMP</strong> да я же проверял - не получилось. </p><p>Покажите пример с IniRead с кавычками, может я где то накосячил...</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2015-07-13T04:17:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95363#p95363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95362#p95362" />
			<content type="html"><![CDATA[<p>А у меня нет кавычек, я даже код не привёл или вы про что?</p><p>Ааа... думаете, если секцию и ключ заключить в кавычки то сработает?</p><p>Нет, я так уже пытался сделать... мимо, т.е. не получается.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2015-07-13T04:14:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95362#p95362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95361#p95361" />
			<content type="html"><![CDATA[<p>Блин, неужели проблема действительно в этом? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2015-07-13T04:13:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95361#p95361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95360#p95360" />
			<content type="html"><![CDATA[<p>Не переменные в функцию передаются в кавычках, на сколько мне известно.<br /></p><div class="codebox"><pre><code>myfunc(&quot;text&quot;)

myfunc(a)
{
 Msgbox,% a
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-07-13T04:08:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95360#p95360</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Параметризированное работа с INI файлом - аналог IniRead]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95359#p95359" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2015-07-13T03:55:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95359#p95359</id>
		</entry>
</feed>
