<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Удалить строку из файла и перезаписать его]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16261</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16261&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Удалить строку из файла и перезаписать его».]]></description>
		<lastBuildDate>Thu, 15 Apr 2021 07:54:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147345#p147345</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Я так в гугле прочитал ) Ну видимо неправильно воспринял информацию. Принцип работы регулярного выражения теперь полностью для меня понятен. Копилка знаний пополнилась. Еще раз спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Thu, 15 Apr 2021 07:54:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147345#p147345</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147344#p147344</link>
			<description><![CDATA[<div class="quotebox"><cite>blackgorod пишет:</cite><blockquote><p>Про невертикальный разделитель впервые узнал</p></blockquote></div><p>Почему вы это называете разделителем? Это просто любой символ, кроме символа переноса строки.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 15 Apr 2021 07:40:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147344#p147344</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147343#p147343</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Спасибо, более менее понятно стало. Значит поиск идет от невертикального разделителя,&nbsp; то есть собственно начало любой строки, и до \R, т.е. до перевода строки. А \R это любой разделить, хоть \r хоть \n хоть \r\n. Если я все верно конечно понял. Про невертикальный разделитель впервые узнал. Спасибо вам за помощь! <br />И про Perl тоже очень полезная информация, а то я все в JavaScript языке тестировал регулярки</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Thu, 15 Apr 2021 07:30:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147343#p147343</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147342#p147342</link>
			<description><![CDATA[<p>AHK использует <a href="http://www.pcre.org/pcre.txt">Perl-compatible regular expressions</a>.<br /></p><div class="quotebox"><blockquote><p>\v&nbsp; &nbsp; &nbsp;any vertical white space character<br />\V&nbsp; &nbsp; &nbsp;any character that is not a vertical white space character</p></blockquote></div><div class="quotebox"><blockquote><p>Outside a character class, by default, the escape sequence&nbsp; \R&nbsp; matches<br />any&nbsp; Unicode newline sequence.</p></blockquote></div><p>Про \R написано и в справке <a href="https://www.autohotkey.com/docs/misc/RegEx-QuickRef.htm">AHK</a>.<br />Тестировать можно <a href="https://regex101.com/">здесь</a>, если разобраться, как оно работает.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 15 Apr 2021 06:44:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147342#p147342</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147340#p147340</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Сработало!! Удаляет единственную строку как и требуется. Я счастлив! Если несложно, объясните:<br />1) Что значит \V и \R<br />2) Какой язык регулярных выражений использует AHK?<br />Просто я с регулярками нечасто сталкивался, в основном в других софтах, у меня стоит RegexBuggy, я в ней тестирую/составляю рег. выражения. Но \V&nbsp; и \R он красным выделил, то есть не понимает. Есть выбор языков, перебрал все, тоже красным подсвечивает. Не понимаю. А хочется понять как это выражение работает. Либо может подскажите где об этом почитать?</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Thu, 15 Apr 2021 03:07:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147340#p147340</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147339#p147339</link>
			<description><![CDATA[<p><strong>__Михаил__</strong><strong>Alectric</strong> Мне сложно вам объяснить всю цепочку и последовательность скриптов. Ну представьте что есть куча разных папок, в каждой есть свои уникальные скрипты, в каждом идет работа со своим списком, у каждой папке есть так называемые свои собственные черные и белые списки которая относится к конкретной лишь папке. Можно конечно таскать скрипт и через A_ScriptDir будет браться текущий список из текущей папке, либо создать отдельный скрипт для работы со списками, или даже функцию и сделать один глобальный скрипт, но это невозможно. Я обо всем этом подумал. Там каждый скрипт делает некие уникальные действия, у каждого свои таймауты выполнения. Скрипты запускаются внешними программами. Если можно было сделать так как вы описали, поверьте я бы так и сделал, где то нужна рандомизация списка, где то не нужна, где то нужно брать строку и записывать ее в текущую папку в другой файл где лежит список, а где этого не нужно делать. В каких то скриптах будет сравниваться списки, чистятся дубли, в каких то нет.</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Thu, 15 Apr 2021 02:31:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147339#p147339</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147334#p147334</link>
			<description><![CDATA[<p>Зачем держать кучу отдельных файлов в разных папках? Можно все нужное для работы скрипта держать в одном файле и копировать всего 1 файл при переносе на другой ПК и не думать о других файлах которые где-то должны лежать.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 14 Apr 2021 16:51:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147334#p147334</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147333#p147333</link>
			<description><![CDATA[<p>Зачем вставлять один и тот же рабочий участок кода во все свои скрипты? Можно и нужно для этого сохранить как *.ahk скрипт в виде функции / метки, затем переместить в библиотеку, из которой будет использоваться во всех скриптах.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 14 Apr 2021 15:31:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147333#p147333</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147331#p147331</link>
			<description><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>file := &quot;C:\список.txt&quot;
FileReadLine, line, % file, 1
FileRead, All, % file
FileOpen(file, &quot;w&quot;).Write(RegexReplace(All, &quot;^\V*\R?&quot;))</code></pre></div><p>Не проверял.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 15:11:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147331#p147331</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147330#p147330</link>
			<description><![CDATA[<p><strong>__Михаил__</strong> Главного нет, там все смешалось в кучу, bas, кликер, ahk скрипты. Каждый скрипт делает свою задачу. работает скажем со своей папкой а значит и со своим списком, через несколько секунд уже другая папка становится главной и с ней работает другая рабочая пара скриптов. Ну в теории это пока так, а на практике много кода выходит, причем корявого. Поэтому я лишь хочу совета, лучше всего если это будет готовый пример. Как переделать (и можно ли) чтобы данный код </p><div class="codebox"><pre><code>file := &quot;C:\список.txt&quot;
FileReadLine, line, %file%, 1
FileRead, All, % File
FileOpen(File, &quot;w&quot;).Write(RegexReplace(All, &quot;^.*`r`n&quot;))</code></pre></div><p> удалял оставшуюся единственную строку из файла? Либо есть есть альтернативный вариант чтения и удаления строк, то подскажите. Единственное не хочется чтобы код был большим громоздким. Потому что скриптов много и кусок кода будет вставляться в разные участки скрипта и разных скриптов. Буду очень благодарен за пример. Я собственно пришел спросить совета можно ли это лаконично и кратко реализовать, в ahk я разбираюсь плохо, но я учусь и на готовом примере я быстрее соображу что и как работает.</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Wed, 14 Apr 2021 14:59:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147330#p147330</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147329#p147329</link>
			<description><![CDATA[<p>Тогда легче думаю сделать один главный скрипт. Он будет напрямую в остальные кидать нужные строки на обработку, через этот же главный делать основные действия с копированием файла (если оно так нужно).</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 14 Apr 2021 14:37:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147329#p147329</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147328#p147328</link>
			<description><![CDATA[<p><strong>__Михаил__</strong> Ну потому что работа идет не одним скриптом, а несколькими, запуск скриптов будет производится внешней программой. В реальности там все гораздо сложнее, этот самый файл со списком, будет являться копией оригинального файла. То есть изначально через команду sort будет перемешиваться список, затем создаваться копия этого списка, помещаясь в папку temp, а затем по порядку брать строки с удалением до победного, эти самые строки будут брать различные скрипты. После того как файл список.txt обработается будет пауза, затем снова копирование списка из оригинала, перемешивание и снова взятие строки с удалением до победного и так по кругу. Поэтому и нужна запись в файла, но суть заключается в том, чтобы этот самый файл был растерзан другими скриптами до победного</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Wed, 14 Apr 2021 13:31:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147328#p147328</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147325#p147325</link>
			<description><![CDATA[<p>Я лично всегда открывал файл целиком, считывал его данные и пока с ним работаю ничего не сохранял обратно - зачем лишний раз использовать чтение / запись с диска? Тем более когда строк много это лишний износ.<br />В ситуации когда файл будет использоваться несколькими программами / скриптами, тогда имеет ещё смысл открывать-сохранять постоянно. Но почему бы тогда не решать задачу в одной программе?</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 14 Apr 2021 12:56:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147325#p147325</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147323#p147323</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Ну извините, подумал вы троллите меня ) Проблема в том, что я ищу описание команд в справке, в основном в русскоязычной, пытаюсь понять что и как работает. Но целиком представления как реализовать это не могу. Отдельного взятыми кусками кода получается орудовать. Но результат выходит не тот который бы хотелось.<br /></p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>читать файл построчно, все строки, кроме самой первой, добавлять в переменную. Так у вас получится текст без первой строки</p></blockquote></div><p>А можно ли увидеть пример воочию? читать файл построчно с помощью Loop? А нельзя ли более проще как то реализовать, вот допустим как в этом коде что я приводил раньше<br /></p><div class="codebox"><pre><code>file := &quot;C:\список.txt&quot;
FileReadLine, line, %file%, 1
FileRead, All, % File
FileOpen(File, &quot;w&quot;).Write(RegexReplace(All, &quot;^.*`r`n&quot;))</code></pre></div><p>Через filereadline я получаю первую строку, что мне и нужно, по сути только нужно эту строку удалить, команда FileRead понятна, но вот последняя команда FileOpen не совсем ясна, идет запись в файл с применением регулярного выражения. Где и что режется что подменяется это непонятно для меня. ^.*`r`n это поиск сначала строки до перевода строки. Но в любом случае скрипт работает, пока не остается одна лишь строка. Вот эта единственная строка не удаляется, можно ли одной строкой кода ее удалить?</p>]]></description>
			<author><![CDATA[null@example.com (blackgorod)]]></author>
			<pubDate>Wed, 14 Apr 2021 11:39:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147323#p147323</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Удалить строку из файла и перезаписать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147322#p147322</link>
			<description><![CDATA[<div class="quotebox"><cite>blackgorod пишет:</cite><blockquote><p>Вы троллите?</p></blockquote></div><p>Нет, вовсе нет. Странно, что попытка добиться от вас примерного описания команд скрипта воспринимается вами, как троллинг. Я подумал, вы понимаете, что именно нужно делать, но не знаете, как это записать, значит, я ошибался.<br /></p><div class="quotebox"><cite>blackgorod пишет:</cite><blockquote><p>Из файла с пятью строками, на выходе должен быть файл с 4 строками (первая строка удаляется)</p></blockquote></div><p>Можно, например, читать файл построчно, все строки, кроме самой первой, добавлять в переменную. Так у вас получится текст без первой строки. Потом удаляете файл, и записываете заново с новым текстом. Теперь у вас есть алгоритм. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 10:55:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147322#p147322</guid>
		</item>
	</channel>
</rss>
