Показать полную графическую версию : [решено] Удалить все символы Enter (переход на след строку) из текста
sashadeg
06-02-2010, 15:03
Простенькая задачка. Но не нашел такой функции в разделе "обработка текста".
Как можно преобразовать весь текст в одну строку (конечно вместо Enter нужно вставить пробел)
madmasles
06-02-2010, 15:11
sashadeg,
Во так попробуй.
StringReplace($text, @CRLF, " ")
StringReplace($sText, @CR & @LF, ' ')
madmasles
06-02-2010, 15:26
kaster,
Объясни, пожалуйста, в чем разница между @CR & @LF и @CRLF.
Ведь в русской справке: @CRLF = @CR & @LF ;требуется для завершения строк.
sashadeg
06-02-2010, 15:33
Спасибо kaster и madmasles =)
madmasles, да. по всей видимости ничем. я просто хотел учесть что строки могут биться не только по CRLF, но и по CR и LF по отдельности. но так не проканало. самое верное будет
StringRegExpReplace($sText, '[\r\n]', ' ')
вот к примеру
$sText = 'a b c' & @CRLF & 'fdfd fd f' & @CR & 'fdfdf fdf' & @LF & 'dsdsds'
MsgBox(0, '', StringRegExpReplace($sText, '[\r\n]', ' '))
Иногда(например при выводе страницы на web-сервере) в тексте идут перемешанные обрывы строк, типа @CR&@CR&@LF или @LF&@CR&@LF поэтому чтоб не было двойных пробелов, то лучше так:
$text=StringStripCR($text)
$text=StringReplace($text, @LF, " ")
$text=StringStripWS($text, 8)
хотел учесть что строки могут биться не только по CRLF, но и по CR и LF по отдельности. но так не проканало »плюсика не хватает... ;)
StringRegExpReplace($sText, '[\r\n]+', ' ')
Если я не ошибаюсь насчет @CR и @LF, то одни юзаются на МАКах, другие на НИКСах, а в Винде сразу оба :)
timsky, Mac OS X уже юзает LF, как и Unix, Win сохранила изначальную систему, когда CR и LF обозначали разные команды для устройств последовательного вывода: CR - возврат каретки (курсора) на начало текущей строки, LF - перевод каретки (курсора) на следующую строку - кстати, это различие можно было применять с пользой при печати на матричных принтерах
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.