Rako1
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору У меня такая задача. Если не по адресу, просьба указать, в какой теме это лучше спросить. Подскажите пожалуйста как сделать, чтобы из группы текстовых файлов, разложенных по папкам, выделять отдельные блоки текста, если в этом блоке текста скажем первая строка определённая. И помещать эти блоки текста, разделённые тремя пустыми строками в новый текстовый файл, один за другим. Т.е. должна получиться выборка блоков текста с определённой первой строкой. Конкретно: Имеем 1000 текстовых файлов. Общим размером около 5мб. Некоторые файлы по 250кб, но таких мало, меньшинство, всего штук 5-10. Самый распространённый размер файла думаю около 20кб. Каждый файл построен следующим образом. В каждом файле идут блоки текста по одной или по несколько строк. Если строк в блоке несколько, то они могут быть либо не разделены пустыми строками, либо разделены одной пустой строкой, либо разделены двумя пустыми строками. Если разделены тремя и больше пустыми строками, то это уже граница блока, т.е. блок закончился и дальше идёт следующий блок. Что за текст? Это заметки. Т.е. это не спецсимволы и прочее, не ini-файл, а просто обычный текст, предложения на русском языке. Кодировка во многих файлах разная, в некоторых ANSI, в некоторых URF-8, в некоторых ещё хрен знает что, причём параметры, которые показывает Notepad++ в статусной строке рядом с кодировкой, а именно порядок байт или строк или как там, не помню, короче CLRF или что-то такое, вот это параметр тоже у многих файлов разный. Если нужно привести все файлы к одной кодировке и одному этому CRLF или как там, а может и к одному ещё чему-то, то придётся сделать, сделаю, хотя от совета как это сделать тоже не откажусь. Что за первая строка в блоке, по которой нужно искать блоки и выписывать в отдельный текстовый файл. Это повторяющаяся строка, т.е. во многих блоках она одна и та же. А точнее даже не вся первая строка там повторяется, а только её часть, выглядящая так: #СловоИлиФраза Вся же первая строка может выглядеть так: #СловоИлиФраза А может и так: #СловоИлиФраза #ДругоеСловоИлиДругаяФраза #СловоИлиДругаяФраза Вот по этой части первой строки и нужно искать блоки и выписывать их в отдельный файл. В итоге если ищем #СловоИлиФраза, то будет новый файл, в котором будут все блоки текста со всех файлов, в первой строке которых присутствует #СловоИлиФраза. |