Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146

Конвертирование *.fb2 в *.txt

25.01.2022, 11:48. Показов 3847. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.
Я сделал программу для конвертации *.fb2 в *.txt. Но она не всегда корректно работает. Виной, как мне кажется теги.
Делаю:
VB.NET
1
2
3
Dim Txt As String = IO.File.ReadAllText("1.txt", System.Text.Encoding.Default)
        Txt = Txt.Replace("<p>", "") : Txt = Txt.Replace("</p>", "")' и т.д.
         IO.File.WriteAllText("1.txt", Txt, System.Text.Encoding.Default)
Я пробовал создать маску "<" & * & ">", она не работает из-за звезды. Пробовал заменять звезду на точку - тоже не работают.
Подскажите, есть-ли универсальная маска, чтобы удалять (или заменять) все теги? Или менять звезду на что-то другое?
Я пробовал найти универсальную маску, но все они тоже не работают.
Рабатаю Vb.net (2017).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2022, 11:48
Ответы с готовыми решениями:

Как создать конвертер (fb2->txt,txt->fb2)
Здраствуйте. Кто знает где можна достать исходник конвертера(fb2-&gt;txt,txt-&gt;fb2), ну и по возможности других текстовых форматов. И ищё: где...

Конвертер TXT в FB2
срочно понадобился конвертер txt в fb2 - простой батник . Нашёл таки , правда это симбиоз какой-то xsl и bat . сам не автор . как...

Текстовый редактор, чтение doc, fb2, txt
Здравствуйте, в универе дали задание написать текстовый редактор для чтения форматов doc, fb2, txt на языке си или асемблере, как сделать...

30
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,733
Записей в блоге: 1
25.01.2022, 12:11
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Виной, как мне кажется теги.
Ну как могут быть основные элементы разметки документа чему-то виной?!?!
istomin_an62, Вы бы хоть чуть-чуть погуглили про формат fb2. Fb2 это XML, но со своим описанием тэгов. Вот немного про описание тэгов. Поэтому при преобразовании в txt надо делать разбор и выбрасывать лишнее, например картинки.
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 12:49  [ТС]
Разумеется, нет. Речь о том, не *.fb2, а *.txt. В txt теги будут излишни.

Добавлено через 11 минут
Цитата Сообщение от Uswer Посмотреть сообщение
Поэтому при преобразовании в txt надо делать разбор и выбрасывать лишнее, например картинки.
Не только картинки, но и все теги!
А иначе:
...
<genre>sf_horror</genre>
...
<p>Какой-то текст</p>
Как по-вашему - это нормально?
0
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,733
Записей в блоге: 1
25.01.2022, 13:08
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Как по-вашему - это нормально?
Так и я о том же, только я подразумеваю работу с fb2 не как с массивом строк, а как с DOM-деревом. Общий подход такой: fb2 парсится в DOM-дерево, затем дерево обходится некой процедурой, которая извлекает только нужные объекты и только они (их текстовое содержимое) пишутся в файл. В принципе процесс не сложный, остаётся найти парсер для fb2.

Добавлено через 1 минуту
Ах да, это:
Цитата Сообщение от Uswer Посмотреть сообщение
как могут быть основные элементы разметки документа чему-то виной?!?!
был сарказм.
0
sleep
 Аватар для I can
4934 / 4605 / 841
Регистрация: 13.04.2015
Сообщений: 9,775
25.01.2022, 13:08
Цитата Сообщение от Uswer Посмотреть сообщение
выбрасывать лишнее, например картинки
Картинки тоже можно получить из fb2, это несложно.
0
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,733
Записей в блоге: 1
25.01.2022, 13:12
Цитата Сообщение от I can Посмотреть сообщение
Картинки тоже можно получить из fb2
И как их потом засунуть в *.txt?
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 13:26  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Так и я о том же, только я подразумеваю работу с fb2 не как с массивом строк, а как с DOM-деревом. Общий подход такой: fb2 парсится в DOM-дерево, затем дерево обходится некой процедурой, которая извлекает только нужные объекты и только они (их текстовое содержимое) пишутся в файл. В принципе процесс не сложный, остаётся найти парсер для fb2.
И??? Вы нашли? Я тоже нет.
Остаётся только по одному удалять все теги, но это не панацея.
Нельзя забывать, что некоторые делатели кидают почти все одну стрлчку, например:
"<?xml version="1.0" encoding="utf-8"?><FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"><description><title-info><genre>sf_horror</genre><genre>sf_horror</genre> <author><first-name>Аарон</first-name>" - это все одна строка
0
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,733
Записей в блоге: 1
25.01.2022, 13:43
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Вы нашли? Я тоже нет.
Извините конечно, но Вы затеяли конвертер Вам и искать. А если найти не можете, то можно и самому написать (но это дело скрупулёзное и неблагодарное).
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Остаётся только по одному удалять все теги
Это вообще не подход. Если Вы пишите конвертер чисто для себя и только под определённый набор fb2-файлов, то флаг Вам в руки. "По взрослому" надо делать как я указывал выше. А как записывать в файл (с символом переноса строки или без него) это дело программиста, вообще это решается одним параметром (свойством и т.п.).
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 14:31  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
"По взрослому" надо делать как я указывал выше
Я ещё не дорос.
Цитата Сообщение от Uswer Посмотреть сообщение
Это вообще не подход
По крайне мере это работает быстро.

Добавлено через 38 минут
Вот только не хватает униреверсальной маски для тегов...
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
25.01.2022, 14:47
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Я ещё не дорос.
И не дорастёшь, если не будешь расти. Ничего сложного в разборе xml нет, а пользы — целый вагон.
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 16:05  [ТС]
Цитата Сообщение от ViterAlex Посмотреть сообщение
Ничего сложного в разборе xml нет
Поконкретней, пожалуйста.

Добавлено через 22 минуты
А то всё слова...
0
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
25.01.2022, 16:33
Лучший ответ Сообщение было отмечено istomin_an62 как решение

Решение

Вот для примера:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    Public fd2 As New XmlDocument ' New XDocument
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        fd2.Load("D:\Inst\BooksReader\432021.fb2")
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim str As IO.StreamWriter = New IO.StreamWriter("D:\Inst\BooksReader\123\000\432021.txt")
        For Each oi As XmlNode In fd2.GetElementsByTagName("body")(0).ChildNodes
            If oi.HasChildNodes Then
                For Each op As XmlNode In oi.ChildNodes
                    If op.HasChildNodes Then
                        For Each ol As XmlNode In op.ChildNodes
                            str.WriteLine(ol.InnerText)
                        Next
                    Else
                        str.WriteLine(op.InnerText)
                    End If
                Next
            Else
                str.WriteLine(oi.InnerText)
            End If
        Next
        str.Close()
    End Sub
Файл который я использовал во вложении
Вложения
Тип файла: zip 432021.zip (1.12 Мб, 21 просмотров)
2
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 17:39  [ТС]
vova2112, Спасибо, сейчас попробую.

Добавлено через 10 минут
vova2112, Спасибо! Все отлично работает!
Правда с файлом "Абаимов. Слезы каменной пустыни.fb2" (Флибуста) произошел сбой. Но, ничего удивительного, там просто текст, хотя и засунут в Fb2. Мне кажется, что разработчик этого просто поменял расширение с txt на fb2.
0
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
25.01.2022, 18:00
istomin_an62, Как видишь ничего сложного, почитай на форуме про парсинг(разбор) XML, посмотри в сторону Xpath и ещё я бы посоветовал использовать .NETFramework не ниже 4-й версии - там очень удобно использовать Linq выражения(при подключении к проекту System.Xml.Linq.dll).
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 18:17  [ТС]
vova2112, Для меня это сложно, т.к. я программист никакой. Но, буду разбираться.
0
25.01.2022, 20:33

Не по теме:

Цитата Сообщение от Uswer Посмотреть сообщение
И как их потом засунуть в *.txt?
Ну он же не сферического коня в вакууме делает, насколько я понимаю. А картинка всегда пригодится.

0
25.01.2022, 21:30  [ТС]

Не по теме:

I can, Их можно засунуть "картинкосодержие файлы" (например fb2 и epub), txt не получится.

0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
25.01.2022, 21:59  [ТС]
Вот готовая программа:
Вложения
Тип файла: rar Конвертация fb2 в txt.rar (274.6 Кб, 18 просмотров)
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
26.01.2022, 12:06  [ТС]
Некоторые авторы fb2 везде где только могут ставят "</body><body>" (везде - в каждой части, а то и главе), в результате после первого </body> конвертирование файлов прекращается.
Разумеется, после поиска </body>, при "</body>" >1, я могу заменить "</body><body>" на "<section>"
или
Code
1
 Msg("Ошибка. Слишком часто встречаются </body><body>")
Но, как говорит уважаемый Uswer "это не по взрослому".
Как быть?
Вот пример такого файла:
0
Любитель
 Аватар для Тим70
1039 / 746 / 160
Регистрация: 27.01.2019
Сообщений: 1,515
26.01.2022, 13:13
istomin_an62, Набросал свой вариант без Xml,может быть найдете,что нибудь интересное
Вложения
Тип файла: rar fb2 - txt.rar (1.54 Мб, 15 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2022, 13:13
Помогаю со студенческими работами здесь

Конвертирование файлов DJVU с математическими формулами в WORD(txt)
Есть ли программа, которая может конвертировать DJVU файл с математическими формулами (булевы функции) в WORD, в любой текстовый файл?...

Конвертирование avi-видео в n-мерный массив и последующее сохранение массива в txt файл
Помогите сделать алгоритм который считывает видео(avi) и сохраняет его в n-мерный массив, выводит массив в ТХТ. а также обратную развёртку...

Переименовать все файлы lab01.txt, Inf_lab02.txt … в каталоге К в lab01_Inf.txt, lab02_Inf.txt,
Пожалуйста, помогите разобраться как работать с переменной в цикле. Задание: В указанном каталоге необходимо переименовать все файлы ...

В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
Программным путем: 1. В папке С:\temp создайте папки К1 и К2. 2. В папке К1: a) создайте файл t1.txt, в который запишите следующий...

В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru