<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Изменение текста в файле]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10824&amp;type=atom" />
	<updated>2015-07-25T18:15:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10824</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96022#p96022" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>С тем что там есть, оказывается, невозможно работать.</p></blockquote></div><p>Можно функции свои понаписать:<br /></p><div class="codebox"><pre><code>text = 
(
1_слово 2_слово 3_слово 4_слово 5_слово 6_слово 7_слово
1_слово 2_слово 3_слово 4_слово 5_слово 6_слово
1_слово 2_слово 3_слово 4_слово 5_слово
)

msgbox % ReplaceWord(text, 3, 2, &quot;test&quot;)

ReplaceWord(text, line, word, replacement)
{
   RegExMatch(text, &quot;^((?:.+?\R){&quot; line-1 &quot;})((?:[^\r\n]+? +){&quot; word-1 &quot;}).+?(?:(\s+.+)|$)&quot;, match)
   if match
      result := match1 match2 replacement match3
   else
      result := &quot;error&quot;
   return result
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-07-25T18:15:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96022#p96022</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96015#p96015" />
			<content type="html"><![CDATA[<p>А вот и я с похвальным постоянством опять спешу протянуть руку помощи!<br /></p><div class="quotebox"><cite>mouse25 пишет:</cite><blockquote><p>а мне нужен тонкий инструмент работы с текстом</p></blockquote></div><p>Вообще-то, регулярные выражения — и есть тонкий инструмент (нет, не для работы с файлами, а именно для обработки текста).<br /></p><div class="quotebox"><cite>mouse25 пишет:</cite><blockquote><p>Нельзя ли из всех этих +.?\|^ собрать набор команд, чтобы они работали по принципу обычного перемещения по тексту - вторая строка вниз, десять символов вправо итд?</p></blockquote></div><p>Спускаемься с заоблачных высот на землю, коллега? И вопросы становятся осмысленнее — именно по теме о работе с файлами (даже регулярные выражения — это уже другой вопрос — об обработке текста после прочтения или перед записью в файл).</p><p>Да, для того чтобы пропустить строку или символы при чтении из файла, регулярные выражения не нужны. Современный AHK позволяет использовать для работы с файлами несколько подходов (не утверждаю, что перечислил все — я AHK почти не знаю):</p><p>1) класcическая построчная обработка файла в цикле <a href="http://ahkscript.org/docs/commands/LoopReadFile.htm">Loop Read</a> (для сформулированной выше задачи, вероятно, не очень удобна);<br />2) команда FileRead для считывания всего файла в переменную — вероятно, вам уже знакома; тут, вероятно, не помешают регулярные выражения для дальнейшей обработки…<br />3) тоже, вероятно, вам знакомая команда FileAppend для дозаписи в файл;<br />4) <a href="http://ahkscript.org/docs/commands/FileReadLine.htm">FileReadLine</a> — получение строки из файла по её номеру;<br />5) современный подход при помощи <a href="http://ahkscript.org/docs/objects/File.htm">файлового объекта</a> — советую ознакомиться!<br />6) близкий к предыдущему подход с помощью COM-объекта &quot;<a href="http://www.script-coding.com/WSH/FileSystemObject.html#7.">Scripting.FileSystemObject</a>&quot; — всё в точности как в WSH (а может, вам и не нужен AutoHotkey и вы решите свою задачу на JScript/VBScript?).<br />(Есть ещё команды для работы с INI-файлами…)</p>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2015-07-25T11:27:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96015#p96015</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96012#p96012" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>mouse25 пишет:</cite><blockquote><p>Но там, бегло вижу, ищутся соответствия с текстом, а мне нужен тонкий инструмент работы с текстом,</p></blockquote></div><p>Нельзя ли из всех этих +.?\|^ собрать набор команд, чтобы они работали по принципу обычного перемещения по тексту - вторая строка вниз, десять символов вправо итд? С тем что там есть, оказывается, невозможно работать.</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-25T09:00:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96012#p96012</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96004#p96004" />
			<content type="html"><![CDATA[<p>Почитайте внимательней про эти комманды.<br />В Clipboard ничего не загружается, а загружается в переменную, которую потом прогоняете через RegExMatch.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-07-24T19:48:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96004#p96004</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96003#p96003" />
			<content type="html"><![CDATA[<p>Значит FileRead.<br />Я так понимаю, текст всего файла - если в нем будет что-то ещё, то загружать и перезаписывать придется все, загрузиться в Clipboard, а чем с ним там работать?</p><p>Жаль с RegExMatch это выполнить не получается, доступнее и нагляднее выглядит.</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-24T19:39:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96003#p96003</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96002#p96002" />
			<content type="html"><![CDATA[<p>FileRead<br />FileDelete<br />FileAppend</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-07-24T19:29:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96002#p96002</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96000#p96000" />
			<content type="html"><![CDATA[<p>Спасибо. Необходимо только чтобы скрипт менял файл с этим отрывком текста, то есть без сообщения msgbox, допустим, файл every key.ahk <br />Это реализуемо?</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-24T19:06:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96000#p96000</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95999#p95999" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>text := &quot;Каждый создаваемый скрипт придставляет собой текстовый, содержащий команды, которые потом будет выполнять наша программа - AutoHotkey.exe. &quot;

RegExMatch(text, &quot;(.+?\s+).+?\s+(.+?\s+..).(.+?)(,.+)&quot;, match)
msgbox % match1 match2 &quot;е&quot; match3 &quot; файл&quot; match4</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-07-24T18:26:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95999#p95999</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95998#p95998" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p><a href="http://www.script-coding.com/AutoHotkey/RegExMatch.html">http://www.script-coding.com/AutoHotkey/RegExMatch.html</a></p></blockquote></div><p>Спасибо. Но там, бегло вижу, ищутся соответствия с текстом, а мне нужен тонкий инструмент работы с текстом, как это делается при добавлении текста, строк, FileAppend, например, только детальнее.<br />То есть, определённый символ в определённой строке - убрать, вставить, заменить. То же, с набором символов, в определённой строке, с одного определённого до следующего определённого символа.</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-24T18:13:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95998#p95998</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95997#p95997" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Ну ждите ответа на &quot;изящно сформулированную проблему&quot;</p></blockquote></div><p>Ну, в школе вряд ли учат, что &quot;сформулировать&quot; это больше употребимо в значении: выразить в виде математического выражения, формулы или краткой точной мысли. У меня именно задан, поставлен вопрос.<br /></p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Может, найдётся телепат.</p></blockquote></div><p>Мне и ваших сеансов спиритизма уже хватило, ещё одного такого &quot;телепата&quot; не надо.</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-24T18:11:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95997#p95997</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95995#p95995" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>убрать второе лишнее слово, исправить ошибку в в третьей букве четвёртого слова, добавить пропущенное слово перед первой запятой. Во втором предложении заменить третье слово и исправить скобки.</p></blockquote></div><p><a href="http://www.script-coding.com/AutoHotkey/RegExMatch.html">http://www.script-coding.com/AutoHotkey/RegExMatch.html</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-07-24T17:01:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95995#p95995</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95994#p95994" />
			<content type="html"><![CDATA[<p>Ну ждите ответа на &quot;изящно сформулированную проблему&quot;, если избегаете наводящих вопросов. Может, найдётся телепат.<br />Думаю, в школе вам хорошо удавались гуманитарные предметы <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2015-07-24T16:55:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95994#p95994</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95992#p95992" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Коллега, вы о чём?</p></blockquote></div><p>Предлагаете вас заставить что-то понять и сделать? Вы даже простую просьбу не портить тему с изящно заданной проблемой, тщательно продуманным вопросом, выполнить не можете.<br /></p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Тема изначально испорчена невразумительно заданным вопросом (у кого-то удивительный талант). Она о работе с файлами? Или может о проверке синтаксиса и орфографии или вообще из области искусственного интелекта?</p></blockquote></div><p>Повторюсь: вопрос задан просто и заботливо, с легко и быстро воспринимаемой задачей. Ведь даже вы поняли, что нужно изменять в файле! Орфографию и т.д. <br /></p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Что должен делать запрашиваемый скрипт: из любого текста удалять второе слово и менять фигурные скобки на круглые?</p></blockquote></div><p>Именно так. Этот текст просто более конкретен, ну и актуален. По аналогии с этими примерами можно будет решать другие подобные задачи. </p><p>Скобки, это тоже чтобы меньше занимать внимание, один элемент, но две позиции в файле. Подразумевается замена двух элементов сразу - ещё же не знаю как это делается, может это имеет значение.</p>]]></content>
			<author>
				<name><![CDATA[mouse25]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33208</uri>
			</author>
			<updated>2015-07-24T16:40:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95992#p95992</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95990#p95990" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?id=10790"> Изменение текста с помощью GUI</a></p>]]></content>
			<author>
				<name><![CDATA[Доктор ТуамОсес]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31413</uri>
			</author>
			<updated>2015-07-24T16:00:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95990#p95990</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Изменение текста в файле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=95989#p95989" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Могли бы хотя бы просто не портить тему с поиском ответа по тематике форума.</p></blockquote></div><p>Тема изначально испорчена невразумительно заданным вопросом (у кого-то удивительный талант). Она о работе с файлами? Или может о проверке синтаксиса и орфографии или вообще из области искусственного интелекта?</p><p>Вам известно такое понятие, как массовость алгоритма?<br />Что должен делать запрашиваемый скрипт: из любого текста удалять второе слово и менять фигурные скобки на круглые?<br />Если вопрос об обработке только приведённого примера, то он ни о чём.<br />Это задача с ответом, но без условия.<br /></p><div class="quotebox"><blockquote><p>Но вы это не захотели заметить, и заранее понятно почему.</p></blockquote></div><p>Коллега, вы о чём?</p>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2015-07-24T15:57:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=95989#p95989</id>
		</entry>
</feed>
