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

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

Оффлайн 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 Гуру
  • *****
  • Сообщений: 2754
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия 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
  • *
  • Сообщений: 2725
  • Репутация: 1140
    • мой сайт
    • Награды
  • Версия 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 Ответов
5800 Просмотров
Последний ответ Июль 02, 2011, 22:14:54
от CreatoR
1 Ответов
3249 Просмотров
Последний ответ Февраль 09, 2012, 15:05:12
от Yuriy
2 Ответов
1597 Просмотров
Последний ответ Май 06, 2015, 21:25:08
от Tapok
6 Ответов
2961 Просмотров
Последний ответ Октябрь 14, 2015, 15:03:47
от NinjaScript
12 Ответов
2573 Просмотров
Последний ответ Сентябрь 12, 2015, 19:21:56
от ВиталийВВ
0 Ответов
406 Просмотров
Последний ответ Сентябрь 12, 2015, 11:53:40
от madmasles
13 Ответов
2197 Просмотров
Последний ответ Май 12, 2016, 20:40:58
от AZJIO
2 Ответов
1900 Просмотров
Последний ответ Апрель 15, 2017, 19:03:06
от Garrett
1 Ответов
345 Просмотров
Последний ответ Июль 11, 2018, 18:20:59
от InnI
3 Ответов
175 Просмотров
Последний ответ Август 12, 2018, 18:27:54
от Alofa