<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Текстовый файл 4 Гб]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=18028</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18028&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Текстовый файл 4 Гб».]]></description>
		<lastBuildDate>Sun, 10 Dec 2023 11:26:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Текстовый файл 4 Гб]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159695#p159695</link>
			<description><![CDATA[<p><strong>ypppu</strong> Перевод строки (не знаю `n или `r`n уже удалил исходный файл). Файл качал с интернета и сам не знал как данные разбиты. Для этого пришлось поделить 4 гб файл на на части по 10 мб ч/з total comander чтобы посмотреть по какому разделителю ориентироваться.</p>]]></description>
			<author><![CDATA[null@example.com (ppss42)]]></author>
			<pubDate>Sun, 10 Dec 2023 11:26:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159695#p159695</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Текстовый файл 4 Гб]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159694#p159694</link>
			<description><![CDATA[<p>Вопрос решил вроде, воспользовался помощью ChatGPT. Запустил скрипт и на выходе получил около 4700 файлов. Выборочно проверил, результат устроил. </p><div class="codebox"><pre><code>File := FileOpen(&quot;C:\bigFile.txt&quot;, &quot;r&quot;)
if !File
{
    MsgBox Файл не может быть открыт!
    ExitApp
}

Buffer := &quot;&quot;

while !File.AtEOF()
{
    Fragment := File.Read(800000) ; Читаем фрагмент размером 500000 символов
    Buffer := Buffer . Fragment     ; Добавляем фрагмент в буфер

    ; Проверяем наличие символа перехода на новую строку
    Index := InStr(Buffer, &quot;`n&quot;)
	
    while Index
    {
        Line := SubStr(Buffer, 1, Index-1) ; Получаем строку из буфера
        Buffer := SubStr(Buffer, Index+1)  ; Обновляем буфер, удаляя прочитанную строку
		count++
      ;  MsgBox % &quot;Строка: &quot; . Line
		tooltip, %count%
		FileAppend, %Line%, C:\результат\%count%.txt
		; Проверяем остаток буфера на наличие еще одной строки
        Index := InStr(Buffer, &quot;`n&quot;)
    }
}

; Обрабатываем последний остаток в буфере
if Buffer != &quot;&quot;
{
    MsgBox % &quot;Строка: &quot; . Buffer
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (ppss42)]]></author>
			<pubDate>Sun, 10 Dec 2023 11:21:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159694#p159694</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Текстовый файл 4 Гб]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159693#p159693</link>
			<description><![CDATA[<p>А что Вы называете строкой?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 10 Dec 2023 11:18:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159693#p159693</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Текстовый файл 4 Гб]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159691#p159691</link>
			<description><![CDATA[<p>Здравствуйте, есть файл 4 гб текстовый. Нужно разбить на несколько файлов. Один файл = одна строка. Пробовал через FileReadLine, но каждая строка длинной примерно 600 тыс. символов. Есть ли возможность использовать другой метод? Также читал про FileOpen, можно побайтово вроде считывать часть файла, но как это сделать, не знаю.</p>]]></description>
			<author><![CDATA[null@example.com (ppss42)]]></author>
			<pubDate>Sun, 10 Dec 2023 09:48:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159691#p159691</guid>
		</item>
	</channel>
</rss>
