<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Как считывать несколько строк поочередно?]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10670&amp;type=atom" />
	<updated>2015-06-02T06:38:10Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=10670</id>
		<entry>
			<title type="html"><![CDATA[Re: Как считывать несколько строк поочередно?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94312#p94312" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Turambar пишет:</cite><blockquote><p>Возникло ещё два вопроса.</p></blockquote></div><p><span style="color: green"><strong>Turambar</strong>, одна тема — <a href="http://forum.script-coding.com/rules.html#3.11.">один вопрос</a>.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-06-02T06:38:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94312#p94312</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как считывать несколько строк поочередно?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94310#p94310" />
			<content type="html"><![CDATA[<p>Огромное спасибо. Возникло ещё два вопроса. Надеюсь, последние.<br />Суть такая. Я беру гугл-таблицу (через UrlDownloadToFile сконвертированный csv-файл), копирую и отправляю в чат содержимое одной из ячеек в том случае, если некоторые ячейки в следующих столбцах пусты. Но две проблемы.</p><p>1. Как сделать в RegExMatch присвоение переменной только части искомого выражения?<br />Пример из инструкции:<br /></p><div class="codebox"><pre><code>RegExMatch(&quot;abcXYZ123&quot;, &quot;abc(.*)123&quot;, SubPat)  ; Возвращает 1 и сохраняет &quot;XYZ&quot; в SubPat1</code></pre></div><p>Вот эти скобки в середине... они у меня просто не работают. Возвращается мне почему-то вся строка, а не та её часть, которую я ограничил скобками.</p><p>2. Можно ли сделать так, чтобы скрипт не открывал чат (SendInput и Sleep) в случае, если искомое&nbsp; через RegExMatch выражение в строке не найдено?</p><div class="codebox"><pre><code>
!3::Pause
!1::            
UrlDownloadToFile, https://docs.google.com/spreadsheets/d/11bQVUu5hbxbDxjetzi7htThVMiPu_8Qp6QvMreSaypE/export?exportFormat=csv, %A_ScriptDir%\Blacklist.csv ;Берём конвертированный список
File = %A_ScriptDir%\Blacklist.csv      ; открываем сохранённый файл
Loop, Read, %File%
{
    RegExMatch(A_LoopReadLine, &quot;(/id\s.*?_.*)?,.*?,.*?,.*?,.*?,,&quot;, id)
    SendInput, {F6}%id%{Enter}
    Sleep, 1000
}
FileDelete, %A_ScriptDir%\Blacklist.csv
!2::Reload
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Turambar]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33097</uri>
			</author>
			<updated>2015-06-02T04:35:42Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94310#p94310</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как считывать несколько строк поочередно?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94271#p94271" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
F3::
#IfWinActive GTA:SA:MP
File = C:\Users\user\Documents\test.txt

Loop, Read, %File%
{
    SendInput, {F6}%A_LoopReadLine%{Enter}
    Sleep, 500
}
Return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2015-05-31T03:30:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94271#p94271</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Как считывать несколько строк поочередно?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94267#p94267" />
			<content type="html"><![CDATA[<p>Здравствуйте.</p><p>Требуется сделать вот что. Существует готовый текстовый файл с именами игроков в формате<br />/id Ivan_Ivanov<br />/id Petya_Ivanov<br />/id Vasya_Pupkin</p><p>Мне нужно, чтобы скрипт сам поочерёдно выдавал в чат игры эти строки.<br />С одной строкой понятно. Как-то так.</p><div class="codebox"><pre><code>F3::
#IfWinActive GTA:SA:MP
File = C:\Users\user\Documents\test.txt

FileRead, out, %File%
loop, parse, out, `n, `r
{
    Total_Stings:=a_index    ; Посчитали строки и присвоили их количество переменной Total_Stings
    If A_LoopField
        Num++
}

Loop
{
    FileRead, read, %File%
    
    {

RegExMatch(read, &quot;.*&quot;, id)
        SendInput, {F6}%id%{Enter}    ; Берём из файла всю строку (.*) и выводим в чат
        Sleep, 500
        
    }

if a_index = %Total_Stings%   ; Повторяем вывод столько раз, сколько строк
   break
}


return</code></pre></div><p>По нажатию клавиши F3, скрипт считает количество строк в документе. Далее повторяет вывод в чат строки столько раз, сколько у нас строк в документе.</p><p>Замечательно. Но как научить его идти дальше - брать содержимое второй строки, третьей, четёртой? </p><p>Господа, как это можно реализовать?</p><p>P.S: извиняюсь за кривость кода и заимствование его частей из других тем на форуме.</p>]]></content>
			<author>
				<name><![CDATA[Turambar]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33097</uri>
			</author>
			<updated>2015-05-30T23:31:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94267#p94267</id>
		</entry>
</feed>
