<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8459&amp;type=atom" />
	<updated>2013-07-21T04:07:57Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8459</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73948#p73948" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Ну, я подумал что в итоге получится <em>текст</em> ввиде единиц и нулей.</p></blockquote></div><p>Нет, текст получается, если читать как текстовый или специально преобразовывать в хекс-, двоичное или ещё какое отображение бинарных данных.</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>А не могли бы вы объяснить работу с ини файлами? Каким образом в них происходит запись?</p></blockquote></div><p>Там используется API WritePrivateProfileString, насколько мне известно. А как она действует, я не знаю.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-21T04:07:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73948#p73948</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73944#p73944" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А при чём тут RegExMatch? Она же в тексте ищет.</p></blockquote></div><p>Ну, я подумал что в итоге получится <em>текст</em> ввиде единиц и нулей. </p><br /><p>А не могли бы вы объяснить работу с ини файлами? Каким образом в них происходит запись?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-20T19:34:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73944#p73944</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73941#p73941" />
			<content type="html"><![CDATA[<p>А при чём тут RegExMatch? Она же в тексте ищет. Если имеете в виду преобразовать каждый бит в символ 1 или 0, так это размер считанного будет в 16 раз больше файла, если в юникодном АНК.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-20T15:29:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73941#p73941</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73940#p73940" />
			<content type="html"><![CDATA[<p><strong>YMP</strong><br />Может скажу глупость... А если прочитать файл в двоичном\бинарном виде <em>file.RawRead</em>, искомую строку представить тоже как бинарную в формате считываемого файла <em>File.Encoding</em>. RegExMatch найдёт что нужно как 0101... Даст позицию. Разделить её на восемь, вот и нужное смещение.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-20T15:16:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73940#p73940</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73901#p73901" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Хотя если подумать то возможно от смещения перезаписать остаток файла, и таким образом удалить таки строку.</p></blockquote></div><p>Ну, если файл сильно большой, это может иметь смысл. Но смещение, действительно, зависит от кодировки. В однобайтных ANSI и в UTF-16 не сложно посчитать, хотя у последнего надо ещё учитывать, если ли в начале файла BOM или нет. А в UTF-8 уже так просто не получится, т.к. в разных символах разное количество байтов. И дальневосточные ANSI, кажись, многобайтные, там тоже сложнее.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-19T14:41:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73901#p73901</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73899#p73899" />
			<content type="html"><![CDATA[<p>Хотя если подумать то возможно от смещения перезаписать остаток файла, и таким образом удалить таки строку.</p><div class="codebox"><pre><code>
FileName = C:\Users\sergey\Desktop\new.txt
WriteString := &quot;&quot;
Seek := 12 ; смещение до третьей строки (байт)
Len := 6 ; длинна третьей строки (байт)


File := FileOpen(FileName, &quot;rw&quot;) 
File.Pos := Seek ; смещение 
End := File.Read() ; чтение остатка
End := SubStr(End, Len + 1) 
; здесь надо как-то обрезать начало по количеству байт нужной строки
; так сработает только в CP1251
; как и значения Seek и Len
File.Length := Seek ; обрезаем файл
File.Write(WriteString . End) ; втавляем от смещения то что надо и остаток
File.Pos := 0


MsgBox % File.Read()
File.Close()
</code></pre></div><p>Файл:<br /></p><div class="codebox"><pre><code>
1 str
2 str
3 str
4 str
5 str
6 str
7 str
8 str
9 str
0 str
</code></pre></div><p>Также если прописать </p><div class="codebox"><pre><code>WriteString := &quot;новая строка`n&quot;</code></pre></div><p>то можно заменять строки.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-19T12:55:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73899#p73899</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73898#p73898" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Ну а строчку непосредственно из файла вы никак не вырежете. Нужно прочитать файл, убрать строчку и то, что осталось, записать обратно в файл.</p></blockquote></div><p>Но если знать в байтах смещение нужной строки и её длинну, то можно &quot;затереть&quot; пробелами. Например в таком файле:<br /></p><div class="codebox"><pre><code>1234567890
1234567890
1234567890
1234567890
1234567890
1234567890</code></pre></div><p> в кодировке CP1251 (ANSI), этот код заменит третью строку пробелами:</p><div class="codebox"><pre><code>FileName = C:\Users\sergey\Desktop\new.txt
TestString := &quot;          &quot; ; 10 пробелов, т.к. знаем что длинна строки 10 символов

File := FileOpen(FileName, &quot;rw&quot;) 
File.Pos := 22 ; смещение в байтах + 2 перевода строки
File.Write(TestString)
File.Pos := 0 ; возвращаем смещение на начало файла
MsgBox % File.Read()
File.Close()</code></pre></div><p>Увы из-за незнания сути кодировок и байтов, универсальный код сделать не могу.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-19T12:15:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73898#p73898</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73646#p73646" />
			<content type="html"><![CDATA[<p>Ну, у меня-то все буквы английские в примере. Стало быть у реального файла русская буква есть.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-11T04:19:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73646#p73646</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73643#p73643" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>Если ТС не шутит, значит имена файлов различные с точки зрения файловой системы ))<br /></p><div class="codebox"><pre><code>if &quot;chatlog.txt&quot; = &quot;сhatlog.txt&quot;
   MsgBox Совпадают
else
   MsgBox Не совпадают
</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>в первом &quot;c&quot; английская, во втором &quot;c&quot; - русская</p></div></div></blockquote></div><p>Не совпадают</p>]]></content>
			<author>
				<name><![CDATA[sergeiplugatyr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30382</uri>
			</author>
			<updated>2013-07-10T15:42:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73643#p73643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73641#p73641" />
			<content type="html"><![CDATA[<p>Если ТС не шутит, значит имена файлов различные с точки зрения файловой системы ))<br /></p><div class="codebox"><pre><code>if &quot;chatlog.txt&quot; = &quot;сhatlog.txt&quot;
   MsgBox Совпадают
else
   MsgBox Не совпадают
</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>в первом &quot;c&quot; английская, во втором &quot;c&quot; - русская</p></div></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-07-10T14:39:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73641#p73641</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73638#p73638" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sergeiplugatyr пишет:</cite><blockquote><p>Вроде бы нет, но скрипт утверждает обратное.</p></blockquote></div><p>Это как?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-10T14:19:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73638#p73638</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73635#p73635" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>То есть в вашем виндовс, у вас в одной папке могут жить 2 файла с одинаковым именем?</p></blockquote></div><p>Вроде бы нет, но скрипт утверждает обратное.</p>]]></content>
			<author>
				<name><![CDATA[sergeiplugatyr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30382</uri>
			</author>
			<updated>2013-07-10T12:58:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73635#p73635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73623#p73623" />
			<content type="html"><![CDATA[<p>То есть в вашем виндовс, у вас в одной папке могут жить 2 файла с одинаковым именем?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-10T11:51:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73623#p73623</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73619#p73619" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Где создаёт?</p></blockquote></div><p>Рядом с этим файлом chatlog.txt он создает точно такой же файл chatlog.txt, только пустой</p>]]></content>
			<author>
				<name><![CDATA[sergeiplugatyr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30382</uri>
			</author>
			<updated>2013-07-10T10:54:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73619#p73619</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Удаление конкретной строчки из файла]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73617#p73617" />
			<content type="html"><![CDATA[<p>Где создаёт?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-10T10:28:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73617#p73617</id>
		</entry>
</feed>
