Автор Тема: Удаление строчки в файле по маске  (Прочитано 3044 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zalman1980 [?]

  • Новичок
  • *
  • Сообщений: 393
  • Репутация: 3
  • Пол: Мужской
    • Награды
Весь форум просмотрел, но к сожалению не нашел. Подскажите пожалуйста.
Есть файл, в нем к примеру требуется удалить все строчки, что содержат некое слово (маска). Конечно, я не имею ввиду перебор строк, так как это долго будет...

Русское сообщество AutoIt

Удаление строчки в файле по маске
« Отправлен: Март 15, 2013, 06:36:35 »

Оффлайн Black_Hole [?]

  • Новичок
  • *
  • Сообщений: 126
  • Репутация: 11
    • Награды

Оффлайн Zalman1980 [?]

  • Новичок
  • *
  • Сообщений: 393

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Re: Удаление строчки в файле по маске
« Ответ #2, Отправлен: Март 15, 2013, 07:52:50 »
Black_Hole
К сожалению, никак не могу подружится..  :think:

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2695
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Удаление строчки в файле по маске
« Ответ #3, Отправлен: Март 15, 2013, 08:25:27 »
а с
Код: AutoIt [Выделить]
разве не придется все равно построчно проверять вхождение слова?
то есть делать то, чего автор темы не хочет

The Dream  [?]
Цитировать
я не имею ввиду перебор строк, так как это долго будет
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: Удаление строчки в файле по маске
« Ответ #3 Отправлен: Март 15, 2013, 08:25:27 »

Оффлайн gregaz [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1166
  • Репутация: 298
  • Пол: Мужской
    • Награды
Re: Удаление строчки в файле по маске
« Ответ #4, Отправлен: Март 15, 2013, 10:39:52 »
The Dream  [?]
Цитировать
удалить все строчки, что содержат некое слово (маска)

Можно так :
Код: AutoIt [Выделить]
$sText = "<link rel='help' href='http://autoit-script.ru/index.php?action=help'/>"  & @CRLF & _
"<link rel='search' href='Моя ссылка 1'/>"  & @CRLF & _
"<link rel='contents' href='http://autoit-script.ru/index.php'/>"  & @CRLF & _
"<link rel='alternate' type='application/rss+xml' title='AutoIt Сообщество - Объявления и новости' href='Моя ссылка 2'/>"
$sWord="http:"
$sPatern = " (?i).*?\Q"& $sWord & "\E.*\n"
$sResult = StringRegExpReplace( $sText, $sPatern, '' )
;MsgBox(4096, ' Test Result', $sResult
MsgBox(4096, ' Test Result', $sResult); подправил
 

« Последнее редактирование: Март 15, 2013, 11:43:43 от gregaz »
Самая большая проблема – её сформулировать. 

Оффлайн Zalman1980 [?]

  • Новичок
  • *
  • Сообщений: 393

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Re: Удаление строчки в файле по маске
« Ответ #5, Отправлен: Март 15, 2013, 11:18:21 »
gregaz, работает не корректно  :(

Оффлайн gregaz [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1166
  • Репутация: 298
  • Пол: Мужской
    • Награды
Re: Удаление строчки в файле по маске
« Ответ #6, Отправлен: Март 15, 2013, 11:44:20 »
The Dream  [?]
Цитировать
gregaz, работает не корректно
Так описка  ;) -поправил

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2720
  • Репутация: 1139
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: Удаление строчки в файле по маске
« Ответ #7, Отправлен: Март 15, 2013, 14:26:09 »
Код: AutoIt [Выделить]
$sSource = "http" & @CRLF & _
        "<link rel='search' href='Моя ссылка 1'/>" & @CRLF & _
        "<link rel='contents' href='http://autoit-script.ru/index.php'/>" & @CRLF & _
        "http"
$sString = "http"
$sString = StringRegExpReplace($sString, '[][{}()*+?.\\^$|=<>#]', '\\$0') ; закомментировать спец-символы
$sResult = StringRegExpReplace($sSource, '(?i)([^\r\n]*?' & $sString & '[^\r\n]*?(?:[\r\n]+|\z))', '')
MsgBox(262144, 'Результат', $sResult)


Русское сообщество AutoIt

Re: Удаление строчки в файле по маске
« Ответ #7 Отправлен: Март 15, 2013, 14:26:09 »

Оффлайн gregaz [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1166
  • Репутация: 298
  • Пол: Мужской
    • Награды
Re: Удаление строчки в файле по маске
« Ответ #8, Отправлен: Март 15, 2013, 16:32:47 »
Или все же :
Код: AutoIt [Выделить]
$sText ="http" & @CRLF & _
        "<link rel='contents' href='http://autoit-script.ru/index.php'/>" & @CRLF & _
        "http" & @CRLF & _
        "<link rel='search' href='Моя ссылка 1'/>"
$sWord="http"; в слове не должно быть сочетания  : "\E"
$sPatern = "(?i).*?\Q"& $sWord & "\E.*\n"
$sResult = StringRegExpReplace( $sText & @LF, $sPatern, '' )
MsgBox(4096, 'Test Result', $sResult)
 
 


Русское сообщество AutoIt

Re: Удаление строчки в файле по маске
« Ответ #8 Отправлен: Март 15, 2013, 16:32:47 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
5692 Просмотров
Последний ответ Июль 02, 2011, 22:14:54
от CreatoR
1 Ответов
3207 Просмотров
Последний ответ Февраль 09, 2012, 15:05:12
от Yuriy
13 Ответов
5116 Просмотров
Последний ответ Июнь 05, 2018, 10:42:10
от nowost
2 Ответов
1574 Просмотров
Последний ответ Май 06, 2015, 21:25:08
от Tapok
6 Ответов
2825 Просмотров
Последний ответ Октябрь 14, 2015, 15:03:47
от NinjaScript
12 Ответов
2505 Просмотров
Последний ответ Сентябрь 12, 2015, 19:21:56
от ВиталийВВ
0 Ответов
391 Просмотров
Последний ответ Сентябрь 12, 2015, 11:53:40
от madmasles
13 Ответов
2128 Просмотров
Последний ответ Май 12, 2016, 20:40:58
от AZJIO
2 Ответов
1856 Просмотров
Последний ответ Апрель 15, 2017, 19:03:06
от Garrett
1 Ответов
151 Просмотров
Последний ответ Июль 11, 2018, 18:20:59
от InnI