Как удалить лишние пустые строки?

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Благодарностей
15
Баллы
18
вопрос. допустим выполняется скрипт. по ходу выполнения исходя из логики на определённых этапах получаются те, или иные данные. в конце выполнения скрипта все переменные (их содержание) куда до этого складывал данные я сохраняю в файл (для многопоточности, а иначе каждый поток бы по ходу обращался бы к файлу и сохранял строки, была бы каша) . вот содержимое экшена который сохраняет в файл - идёт последним действием скрипта:

{-Variable.1_2_3-}
{-Variable.1_3_3-}
{-Variable.1_4_3-}
{-Variable.1_5_3-}
{-Variable.1_6_3-}
{-Variable.1_7_3-}
и т.д


если нет каких то переменных (данных в них) то в исходном файле на этом месте пробелы, как убрать эти пробелы?
 

seroja

Client
Регистрация
08.10.2009
Сообщения
250
Благодарностей
23
Баллы
18
перед сохранением данных, запили их в список, удали пустые и уже потом сохраняй
 

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Благодарностей
15
Баллы
18
разобрался
 

AlexGoodWeb

Client
Регистрация
08.04.2015
Сообщения
206
Благодарностей
51
Баллы
28

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Есть удаление пустых строк экшен сейчас
 
  • Спасибо
Реакции: AlexGoodWeb

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 452
Благодарностей
1 886
Баллы
113
Если версия не последняя, можно так
Операции над списком - Удалить строки НЕ удовлетворяющие регулярному выражению и в поле вписываете - "\S+"
 
  • Спасибо
Реакции: AlexGoodWeb

AlexGoodWeb

Client
Регистрация
08.04.2015
Сообщения
206
Благодарностей
51
Баллы
28
Есть удаление пустых строк экшен сейчас
Начиная с какого билда ? Где искать ?
Если версия не последняя, можно так
Операции над списком - Удалить строки НЕ удовлетворяющие регулярному выражению и в поле вписываете - "\S+"
Спасибо. В итоге я нашёл способ спарсить те же данные из другого места на странице регуляркой и после из этой строки уже повытягивал нужные данные в список всё записалось без пропусков ... похоже что перед этим парсилось с добавлением пустой строки Enter.
 

comitatus

Client
Регистрация
01.09.2012
Сообщения
26
Благодарностей
7
Баллы
3
как вариант. обработка текста - загоняются все переменные - замена - regexp
Код:
(?:\r\n){2,}
на
Код:
{-String.Enter-}
заменит два и более идущих подряд переноса строки (т.е. удалит пустые строки)
 
  • Спасибо
Реакции: AlexGoodWeb

AlexGoodWeb

Client
Регистрация
08.04.2015
Сообщения
206
Благодарностей
51
Баллы
28
как вариант. обработка текста - загоняются все переменные - замена - regexp
Код:
(?:\r\n){2,}
на
Код:
{-String.Enter-}
заменит два и более идущих подряд переноса строки (т.е. удалит пустые строки)
Что примерно было в моей ситуации ...

Через DOM парсились со страницы 5 значений : ссылка1 , название2 (Кириллицей), название3 (Латиницей), название4 (Когда как), название5.

Далее через экшен обработки списка добавлял строку в список состоящюю из переменных в которые сохранялись спарсенные значения.

В строчку {-Variable.1-} {-Variable.2-} | {-Variable.3-} - {-Variable.4-} : {-Variable.5-}

Но в файл списка spisok.txt записывалось всё это примерно так ...

{-Variable.1-} {-Variable.2-} |
(пустая строка)
{-Variable.3-}
-
{-Variable.4-} : {-Variable.5-}

При этом если открыть файл spisok.txt обычным блокнотом, то переносов не было, однако при вставке в другой документ все они проявлялись
При открытии файла spisok.txt через редактор notepad ++ также сразу проявлялись все пустые строки и переносы ...
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 452
Благодарностей
1 886
Баллы
113
Что примерно было в моей ситуации ...

Через DOM парсились со страницы 5 значений : ссылка1 , название2 (Кириллицей), название3 (Латиницей), название4 (Когда как), название5.

Далее через экшен обработки списка добавлял строку в список состоящюю из переменных в которые сохранялись спарсенные значения.

В строчку {-Variable.1-} {-Variable.2-} | {-Variable.3-} - {-Variable.4-} : {-Variable.5-}

Но в файл списка spisok.txt записывалось всё это примерно так ...

{-Variable.1-} {-Variable.2-} |
(пустая строка)
{-Variable.3-}
-
{-Variable.4-} : {-Variable.5-}

При этом если открыть файл spisok.txt обычным блокнотом, то переносов не было, однако при вставке в другой документ все они проявлялись
При открытии файла spisok.txt через редактор notepad ++ также сразу проявлялись все пустые строки и переносы ...
Значит там были не полноценные переносы. Знак энтер - это 2 непечатных символа - конец строки и перенос каретки - \r\n. В разных системах может использоваться один из них, либо же Вы неправильно почистили данные от переносов и удалили лишний знак.
 
  • Спасибо
Реакции: AlexGoodWeb

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