Поиск текста в файле

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Всем привет!

Подскажите как найти кусок текста в файле регуляркой? Попробовал сначала через функцию "Прочитать текст" и потом "Обработка текста", но файл очень большой и очень долго длится процесс.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Всем привет!

Подскажите как найти кусок текста в файле регуляркой? Попробовал сначала через функцию "Прочитать текст" и потом "Обработка текста", но файл очень большой и очень долго длится процесс.
Нужны подробности, какое содержимое у файла, какая регулярка.
В Конструкторе рег-выражений пробовали тестировать процесс?
Сколько времени он длится?
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Нужны подробности, какое содержимое у файла, какая регулярка.
В Конструкторе рег-выражений пробовали тестировать процесс?
Сколько времени он длится?
1. Содержание файла текст, который постоянно растет.
2. Файл сейчас весит около 6 мб или 35к строк.
3. Регулярка [А-ЯЁ][^\r\nА-ЯЁ]*\bслов\w*\b[^\r\nА-ЯЁ]*[\.\?\!]
4. В конструкторе регулярка работает.
5. Длится около 1 минуты если запускаю через прожект мэйкер(ПМ). ПМ зависает на 1мин. (Железо не справляется наверное. Нужно чтобы бралось предложение полностью по регулярке и пересохранялось в другой файл. Проверок много.)
 
Последнее редактирование:

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
4. В конструкторе обрабатывает за пару секунд.
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Получилось написать вот такой код:

string data = File.ReadAllText(project.Directory+"\\"+ "text.txt");

File.WriteAllText(@"D:\words.txt", newdata, Encoding.Default);

Не понимаю как прикрутить сюда регулярку [А-ЯЁ][^\r\nА-ЯЁ]*\bслов\w*\b[^\r\nА-ЯЁ]*[\.\?\!] и запихать её в newdata
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Странно, попробовал нажал "Вперед" и за 2 секунды все нашлось. Повторил второй раз и основ PM завис. Люди добрые, помогите.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Странно, попробовал нажал "Вперед" и за 2 секунды все нашлось. Повторил второй раз и основ PM завис. Люди добрые, помогите.
Написал в личке, напишу также здесь.
В тексте есть конструкции начинающиеся на фигурную скобку?
Попробуйте в Нотепад++ напрмиер посмотреть, поиском по {
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Есть всего 3 скобки "{". в файле очень много вот таких символов "<" 36к . Из-за этого может глючить? Т.е нет смысла кубики переделывать на С#?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Есть всего 3 скобки {. в файле.
Попробуйте очистить файл от них, можно использовать такой C#-код для очистки:
Код:
return Global.IE.Screening.StringMacrosScreening(project.Variables["temp"].Value);
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Попробуйте очистить файл от них, можно использовать такой C#-код для очистки:
Код:
return Global.IE.Screening.StringMacrosScreening(project.Variables["temp"].Value);
Я не разбираюсь в С#, но вроде вижу, что что-то произойдет не с файлом, а с переменной в проекте. Я запустил и все опять зависло(
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Я не разбираюсь в С#, но вроде вижу, что что-то произойдет не с файлом, а с переменной в проекте. Я запустил и все опять зависло(
Да тут не нужно особо разбираться, код готовый к употреблению.
Берете из файла текст в переменную, эту переменную обрабатываете в этом коде,
на выходе у вас получится чистый вариант, уже без фигурных скобок, в нем парсите.
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Прогрузилось наконец-то. Выдало ошибку.
Да тут не нужно особо разбираться, код готовый к употреблению.
Берете из файла текст в переменную, эту переменную обрабатываете в этом коде,
на выходе у вас получится чистый вариант, уже без фигурных скобок, в нем парсите.
return Global.IE.Screening.StringMacrosScreening(project.Variables["Вот сюда воткнул свою переменную"].Value); Выдало ошибку у кубика. http://skrinshoter.ru/s/200819/MWZ9JLMU
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
http://skrinshoter.ru/s/200819/YnDCOX0g А С# кодом также будет долго обрабатыватьcя, если он будет через кубик "Cвой C# код" прожект мэйкера? Дело именно в спец. знаках?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
http://skrinshoter.ru/s/200819/YnDCOX0g А С# кодом также будет долго обрабатыватьcя, если он будет через кубик "Cвой C# код" прожект мэйкера? Дело именно в спец. знаках?
Да, дело в спец-символах, которые используются в макросах, обозначающих переменные.
Этот код удаляет эти символы. На скриншоте у вас все верно, должно отрабатывать быстро.
Вы уже попробовали парсить в очищенном тексте?
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Да, дело в спец-символах, которые используются в макросах, обозначающих переменные.
Этот код удаляет эти символы. На скриншоте у вас все верно, должно отрабатывать быстро.
Вы уже попробовали парсить в очищенном тексте?
К сожалению выдает ошибку http://skrinshoter.ru/s/200819/MWZ9JLMU при запуске этого с#-кубика. Удаления не происходит. Не понимаю, что с этим делать(
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Версия программы: 5.9.9.1
Да, этот метод не будет работать в этой версии.
Попробуйте поискать методы решения на форуме в старых топиках,
что то было на эту тему.
 
  • Спасибо
Реакции: luserz

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Да, этот метод не будет работать в этой версии.
Попробуйте поискать методы решения на форуме в старых топиках,
что то было на эту тему.
Попробую удалить и отпишусь по результатом. А пилить С# кубик не имеет смысла на таком объеме (проще сделать стандартными методами)?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
Попробую удалить и отпишусь по результатом. А пилить С# кубик не имеет смысла на таком объеме (проще сделать стандартными методами)?
Актуально решать подобную проблему именно с помощью C#,
т.к. стандартные экшены пытаются распознавать макросные конструкции,
на этом как раз и происходит замедление работы. Помнится в старых топиках
тоже с помощью C# решалось. Сейчас тоже попробую поискать.
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Актуально решать подобную проблему именно с помощью C#,
т.к. стандартные экшены пытаются распознавать макросные конструкции,
на этом как раз и происходит замедление работы. Помнится в старых топиках
тоже с помощью C# решалось. Сейчас тоже попробую поискать.
Выше я писал, что в C# полный 0. Все, что удалось написать

string data = File.ReadAllText(project.Directory+"\\"+ "text.txt");

File.WriteAllText(@"D:\words.txt", newdata, Encoding.Default);

Не понимаю как прикрутить сюда регулярку [А-ЯЁ][^\r\nА-ЯЁ]*\bслов\w*\b[^\r\nА-ЯЁ]*[\.\?\!] и запихать её в newdata

Если есть возможность помочь, то был бы благодарен. Если нет времени, то буду изыскивать другие варианты без затрат вашего и своего времени. В любом случае спасибо. Пинок в правильное направление я получил)
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
  • Спасибо
Реакции: luserz

woodoo1

Client
Регистрация
10.06.2014
Сообщения
21
Благодарностей
6
Баллы
3
Всем привет! А как сделать так чтобы в тексте удаляло строки со свойствами css и различными кусками кода? Пример
C#:
 maxCount: 5,
rightEdgeOffset: 0,
'class': 'spinner'
'class': 'fa fa-spinner fa-spin'
'data-id': ,
'class': 'comment iwt_comment_parent_'+commentModel.parent,
'parent-id': commentModel.parent
'class': 'child-comments'
'class': 'comment-wrapper'
text: this.options.timeFormatter(commentModel.created),
'data-original': commentModel.created
'class': 'name'
href: commentModel.profileURL,
text: nameText
text: "In risposta a: "
text: parent.fullname
'class': 'fa fa-share'
text: this.options.newText
'class': 'wrapper'
'class': 'content'
href: commentModel.fileURL,
target: '_blank'
src: commentModel.fileURL
src: commentModel.fileURL,
type: commentModel.fileMimeType,
controls: 'controls'
'class': iconClass
text: this.options.textFormatter(this.options.editedText) + ' ' + editedTime,
'data-original': commentModel.modified
'class': 'actions'
text: ''
'data-reid': ,
text: this.options.textFormatter(this.options.replyText)
text: 'Spubblica'
text: 'Modifica'
'class': 'fa fa-thumbs-up'
text: this.options.textFormatter(this.options.deleteText)
'class': 'action upvote' + (commentModel.userHasUpvoted ? ' highlight-font': '')
'class': 'upvote-count'
text: css
created: time,
modified: time,
fullname: this.options.textFormatter(this.options.youText),
profilePictureURL: this.options.profilePictureURL,
upvoteCount: 0,
userHasUpvoted: false
var maxRowsUsed = this.options.textareaMaxRows == false.
video = html.split( '[video]' )
newContent = content.substring(0, iwtposition)
+jQuery( oggetto ).text()
var caretPos = 0,
Пока удаляю регулярными выражениями, но под каждое свойство css напряжно их писать
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 632
Благодарностей
8 769
Баллы
113
  • Спасибо
Реакции: woodoo1

woodoo1

Client
Регистрация
10.06.2014
Сообщения
21
Благодарностей
6
Баллы
3
Спасибо! Буду брать текст стандартным кубиком тогда, а то у меня там на C# сделано. Нашел где то тут на форуме, может из-за этого так парсит иногда.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)