Что нового

Из текстовой строки .txt получить в буфер обмена строку с переносами

Soderling

Новичок
Сообщения
29
Репутация
0
Здравствуйте!

Есть текстовый файл, там много строк. Переносы указаны так - \r\n или n\n\ или n\
пример: \n\nРАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!

Как сделать, что бы после выполнения функции было так:

РАЗРЕШЕНО
Общаться, задавать вопросы!
Отвечать и помогать друг другу советами!

Пробовал так и не сработало:
Код:
$sText= StringRegExpReplace("\n\nРАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!", "n\n\", @CRLF)
 

Norm

Продвинутый
Сообщения
279
Репутация
74
Попробуйте так
Код:
$sText= StringReplace("\n\n", @CRLF)
 
Автор
S

Soderling

Новичок
Сообщения
29
Репутация
0
Попробуйте так
Код:
$sText= StringReplace("\n\n", @CRLF)
Благодарю так работает

Код:
$sText = StringReplace("\n\nРАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!", "\n\n", @CRLF)

msgbox (64,'',$sText)
 

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
заменяет и \n и \r и \n\r и \r\n и \r\r и \n\n
Код:
$sText = '\n\nРАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!'
$sText = StringRegExpReplace($sText, '((\\n|\\r)+)', @CRLF)
ConsoleWrite($sText& @CRLF)

в массив:
Код:
$sText = '\n\nРАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!'
$aText = StringRegExp($sText, '(?:\\n|\\r)*(.+)', 3)
For $sLine In $aText
   ConsoleWrite($sLine& @CRLF)
Next
 
Последнее редактирование:

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
Если вам только разбить документ то да, подойдет и вариант просто с StringReplace, а если нужна будет работа с этим текстом, то лучше использовать уже массив, чтоб в дальнейшем снова не разбивать
Код:
#include <Array.au3>

$text = "РАЗРЕШЕНО\n\nОбщаться, задавать вопросы! \n\nОтвечать и помогать друг другу советами!"
$array = StringSplit($text, "\n\n",1)
_ArrayDelete($array, 0)
_ArrayDisplay($array)
 

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Ваш пример с массивом не разбивает - в итоге только одна строка, а вот у SealAlbinos разбивает. Возможен и общий вариант:
Код:
$aText=StringSplit(StringRegExpReplace($sText,'((\\n|\\r)+)',@LF),@LF)

Или изменить регулярку для частного случая:
Код:
$aText=StringRegExp($sText,'(?:\\n|\\r)*([^\\]+)', 3)
 
Последнее редактирование:
Верх