VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
-
namin78
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Желательно js/
Есть файл fb2. В нем есть лишние абзацы. Нужно при запуске скрипта, опросить начальную строку и конечную строку. И после нажатия "ок", удалить все между этих строк, включая эти строки.
Пример есть текст :
Скрытый текст
[spoiler]Обговорив с женой через интерфейс скафандров все обнаруженное мы пришли пока к решению не форсировать события и посмотреть что будет дальше. Общаться решили через интерфейс скафандра из за моей паранойи, в моем прошлом мире я слышал байки о том что сильный маг разума может подслушивать телепатическую связь на близком расстоянии, вот и решил перестраховаться. До ужина оставалось еще два часа, а потому мы решили просто полежать и отдохнуть.
Серж
Читать
Поиск
Копилка
FAQ
Почта
Глава 2
Примерно через час к нам зашел один из подчиненных Синтия и предложил переодеться в вещи достойные приема у Синтия, показав нам традиционные одежды для высшей аристократии из моего прошлого мира. Хоть я был признанным специалистом в своей области, но в связи с моим происхождением меня редко приглашали на приемы высшей аристократии. Если быть честным то только один когда помог одному графу с доставшимися в наследство древними артефактами. У нас в империи действовал закон, согласно которому все древние артефакты подлежат сдаче государству, а оно уже потом решает само что вернуть владельцу, а что оставить себе с минимальной компенсацией. Так вот граф попросил разобраться с артефактами и определить что у него там вообще есть, ведь действуя через официального оценщика артефакты почти сто процентов попали бы государству. И в благодарность за помощь граф заплатил мне пятьсот золотых и пригласил на помолвку своей дочери, хотя мне с моим торговым происхождениям там делать было нечего.
[/spoiler]
При запуске скрипта я ввожу начальную строку"Серж", конечную строку "Глава 2". Жму "ок". И на выходе получаю
Скрытый текст
[spoiler]Обговорив с женой через интерфейс скафандров все обнаруженное мы пришли пока к решению не форсировать события и посмотреть что будет дальше. Общаться решили через интерфейс скафандра из за моей паранойи, в моем прошлом мире я слышал байки о том что сильный маг разума может подслушивать телепатическую связь на близком расстоянии, вот и решил перестраховаться. До ужина оставалось еще два часа, а потому мы решили просто полежать и отдохнуть.
Примерно через час к нам зашел один из подчиненных Синтия и предложил переодеться в вещи достойные приема у Синтия, показав нам традиционные одежды для высшей аристократии из моего прошлого мира. Хоть я был признанным специалистом в своей области, но в связи с моим происхождением меня редко приглашали на приемы высшей аристократии. Если быть честным то только один когда помог одному графу с доставшимися в наследство древними артефактами. У нас в империи действовал закон, согласно которому все древние артефакты подлежат сдаче государству, а оно уже потом решает само что вернуть владельцу, а что оставить себе с минимальной компенсацией. Так вот граф попросил разобраться с артефактами и определить что у него там вообще есть, ведь действуя через официального оценщика артефакты почти сто процентов попали бы государству. И в благодарность за помощь граф заплатил мне пятьсот золотых и пригласил на помолвку своей дочери, хотя мне с моим торговым происхождениям там делать было нечего.
[/spoiler]
Таких кусков текста может быть несколько.
Есть файл fb2. В нем есть лишние абзацы. Нужно при запуске скрипта, опросить начальную строку и конечную строку. И после нажатия "ок", удалить все между этих строк, включая эти строки.
Пример есть текст :
Скрытый текст
[spoiler]Обговорив с женой через интерфейс скафандров все обнаруженное мы пришли пока к решению не форсировать события и посмотреть что будет дальше. Общаться решили через интерфейс скафандра из за моей паранойи, в моем прошлом мире я слышал байки о том что сильный маг разума может подслушивать телепатическую связь на близком расстоянии, вот и решил перестраховаться. До ужина оставалось еще два часа, а потому мы решили просто полежать и отдохнуть.
Серж
Читать
Поиск
Копилка
FAQ
Почта
Глава 2
Примерно через час к нам зашел один из подчиненных Синтия и предложил переодеться в вещи достойные приема у Синтия, показав нам традиционные одежды для высшей аристократии из моего прошлого мира. Хоть я был признанным специалистом в своей области, но в связи с моим происхождением меня редко приглашали на приемы высшей аристократии. Если быть честным то только один когда помог одному графу с доставшимися в наследство древними артефактами. У нас в империи действовал закон, согласно которому все древние артефакты подлежат сдаче государству, а оно уже потом решает само что вернуть владельцу, а что оставить себе с минимальной компенсацией. Так вот граф попросил разобраться с артефактами и определить что у него там вообще есть, ведь действуя через официального оценщика артефакты почти сто процентов попали бы государству. И в благодарность за помощь граф заплатил мне пятьсот золотых и пригласил на помолвку своей дочери, хотя мне с моим торговым происхождениям там делать было нечего.
[/spoiler]
При запуске скрипта я ввожу начальную строку"Серж", конечную строку "Глава 2". Жму "ок". И на выходе получаю
Скрытый текст
[spoiler]Обговорив с женой через интерфейс скафандров все обнаруженное мы пришли пока к решению не форсировать события и посмотреть что будет дальше. Общаться решили через интерфейс скафандра из за моей паранойи, в моем прошлом мире я слышал байки о том что сильный маг разума может подслушивать телепатическую связь на близком расстоянии, вот и решил перестраховаться. До ужина оставалось еще два часа, а потому мы решили просто полежать и отдохнуть.
Примерно через час к нам зашел один из подчиненных Синтия и предложил переодеться в вещи достойные приема у Синтия, показав нам традиционные одежды для высшей аристократии из моего прошлого мира. Хоть я был признанным специалистом в своей области, но в связи с моим происхождением меня редко приглашали на приемы высшей аристократии. Если быть честным то только один когда помог одному графу с доставшимися в наследство древними артефактами. У нас в империи действовал закон, согласно которому все древние артефакты подлежат сдаче государству, а оно уже потом решает само что вернуть владельцу, а что оставить себе с минимальной компенсацией. Так вот граф попросил разобраться с артефактами и определить что у него там вообще есть, ведь действуя через официального оценщика артефакты почти сто процентов попали бы государству. И в благодарность за помощь граф заплатил мне пятьсот золотых и пригласил на помолвку своей дочери, хотя мне с моим торговым происхождениям там делать было нечего.
[/spoiler]
Таких кусков текста может быть несколько.
-
Iska
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Цитата namin78:
Есть файл fb2.
Образец файла упакуйте в архив и приложите к сообщению, либо выложите архив на RGhost/Яндекс.Диск. Укажите пример строк:
Цитата namin78:
начальную строку"Серж", конечную строку "Глава 2"
для выложенного образца. Желательно также, чтобы образец содержал указанное Вами:
Цитата namin78:
Таких кусков текста может быть несколько.
Есть файл fb2.
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Образец файла упакуйте в архив и приложите к сообщению, либо выложите архив на RGhost/Яндекс.Диск. Укажите пример строк:
Цитата namin78:
начальную строку"Серж", конечную строку "Глава 2"
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
для выложенного образца. Желательно также, чтобы образец содержал указанное Вами:
Цитата namin78:
Таких кусков текста может быть несколько.
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
- Вложения
-
- пример.rar
- (11.89 КБ) 0 скачиваний
- пример.rar
- (11.89 КБ) 0 скачиваний
-
Iska
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Попробуйте так (WSH/VBScript):
Скрытый текст
[spoiler]Код: [/spoiler]
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
Option Explicit
Dim strSourceFile
Dim strFromString, strToString
Dim objDomDocument
Dim objXMLDOMElement
Dim boolDeletion
strSourceFile = "C:\Мои проекты\0037\пример\пример.fb2"
strFromString = InputBox("From string") ' "Rinat-106 M"
strToString = InputBox("To string") ' "С нами: 3 года 2 месяца"
Set objDomDocument = WScript.CreateObject("Microsoft.XMLDOM")
objDomDocument.load(strSourceFile)
boolDeletion = False
For Each objXMLDOMElement In objDomDocument.selectNodes("/FictionBook/body/section/p")
If Not boolDeletion Then
If StrComp(objXMLDOMElement.text, strFromString, vbTextCompare) = 0 Then
objXMLDOMElement.parentNode.removeChild objXMLDOMElement
boolDeletion = True
End If
Else
objXMLDOMElement.parentNode.removeChild objXMLDOMElement
If StrComp(objXMLDOMElement.text, strToString, vbTextCompare) = 0 Then
boolDeletion = False
End If
End If
Next
objDomDocument.Save strSourceFile
Set objDomDocument = Nothing
WScript.Quit 0-
namin78
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Цитата namin78:
чтобы скрипт работал с файлом, который я перетащил на него?
Примерно так (не проверялось):
Скрытый текст
[spoiler]Код: [/spoiler]
чтобы скрипт работал с файлом, который я перетащил на него?
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Примерно так (не проверялось):
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
Option Explicit
Dim strSourceFile
Dim strFromString, strToString
Dim objXMLDOMElement
Dim boolDeletion
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strSourceFile) Then
strFromString = InputBox("From string") ' "Rinat-106 M"
strToString = InputBox("To string") ' "С нами: 3 года 2 месяца"
With WScript.CreateObject("Microsoft.XMLDOM")
.load(strSourceFile)
boolDeletion = False
For Each objXMLDOMElement In .selectNodes("/FictionBook/body/section/p")
If Not boolDeletion Then
If StrComp(objXMLDOMElement.text, strFromString, vbTextCompare) = 0 Then
objXMLDOMElement.parentNode.removeChild objXMLDOMElement
boolDeletion = True
End If
Else
objXMLDOMElement.parentNode.removeChild objXMLDOMElement
If StrComp(objXMLDOMElement.text, strToString, vbTextCompare) = 0 Then
boolDeletion = False
End If
End If
Next
.Save strSourceFile
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ "
WScript.Quit 1
End If
WScript.Quit 0-
namin78
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Iska, Вечер добрый, Вы мне недавно помогли(за что спасибо).
Есть еще одна просьба. Тот же fb2 файл, очень многие диалоги, начинаются с маленькой буквы(должны с большой).
Код:
Надо проверить в начале строки наличие длинного тире, если есть, то проверить какая буква идет через пробел после тире, если строчная, поменять на заглавную, если заглавная ни чего не делать.
Заранее спасибо.
Есть еще одна просьба. Тот же fb2 файл, очень многие диалоги, начинаются с маленькой буквы(должны с большой).
Код:
Код: Выделить всё
— и что же? — спросил начальник абордажной команды, здоровенный бугай, с татуировкой на всю лысую голову, с изображением взбешённого осьминога.
— что? А вы заметили, сколько в городе на данный момент ушастых? Кстати, все они моряки, причём военные. Нашего капитана и его помощника, окучивают на предмет покупки кораблей, только цены дают… и требуют обучить их магов для пользования движителей, причём без всякой охраной клятвы.
— кэп запёрся в своей вотчине и никуда носа не кажет. Поговаривают даже стычка у него была с ребятами Мика. — влез в разговор ещё один из «печальных» пиратов.
Надо проверить в начале строки наличие длинного тире, если есть, то проверить какая буква идет через пробел после тире, если строчная, поменять на заглавную, если заглавная ни чего не делать.
Заранее спасибо.
-
namin78
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Цитата namin78:
какая буква идет через пробел после тире
Там преимущественно неразрывные пробелы.
Примерно так:
Оригинал будет сохранён в одноимённый файл с расширением .bak. Если таковой уже существовал — он будет перезаписан без подтверждения.
какая буква идет через пробел после тире
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Там преимущественно неразрывные пробелы.
Примерно так:
0003.7z
.Оригинал будет сохранён в одноимённый файл с расширением .bak. Если таковой уже существовал — он будет перезаписан без подтверждения.
- Вложения
-
- Виват Император.rar
- (73.96 КБ) 0 скачиваний
- Виват Император.rar
- (73.96 КБ) 0 скачиваний
-
Iska
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
И, похоже, это ещё не конец. Там и тире не все длинные
.
Код:
и т.д.
Добавил уточнение в предыдущий код.
.Код:
Код: Выделить всё
- Ты глянь какая громадина в косынке в таверну-то забрела?
…
- но как такое может быть?*— удивлённо взирает на безопастника император.
и т.д.
Добавил уточнение в предыдущий код.
-
Iska
Re: VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Цитата Iska:
на безопастника
Н-да, в том тексте с грамотностью вообще не всё, мягко говоря, в порядке: споткнувшись на этом пассаже, посмотрел и остальные приведённые здесь строки того текста.
на безопастника
VBS/WSH/JS - [решено] Помогите написать скрипт удаления не нужных абзацев в тексте.
Н-да, в том тексте с грамотностью вообще не всё, мягко говоря, в порядке: споткнувшись на этом пассаже, посмотрел и остальные приведённые здесь строки того текста.
