Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2015, 12:09   #1
dumaser79
 
Регистрация: 22.01.2015
Сообщений: 6
По умолчанию Есть проблема с пустой строкой в txt файлах

Привет!
у меня такая проблема есть 1000 файлов формата (txt)

и в конце каждого файла, есть пустая строка, как на рисунке, подскажите может есть у кого скрипт который удалит все пустые строки (абсолютно все)
в нете все что рыл не помогало! в нотепаде пробовал разные способы замены типа /r/n на /n
и много других вариантов, мож у кого есть програмуля или скрипт который массово удалит во всех моих текстовых файлах пустые строки.

вот выложил крин, там видно что строка 50023 - пустая и ее нужно удалить
можно ручками, но это оч долго.

Спасибо за внимание!
http://autosobi.ru - Автобазар России.
dumaser79 вне форума Ответить с цитированием
Старый 10.06.2015, 13:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, если в этой строке будут пробелы или табуляции - её считать пустой (т.е. нужно ли её удалять)?

во-вторых, а почему речь идёт о PHP? файлы лежат где-то далеко на хостинге и вы туда доступа не имеете?
я бы, например, такую утилитку на Delphi слепил...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.06.2015, 14:00   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

пустая строка это не /r/n а /r/n/r/n

Код:
вот на этой строке есть ТЕКСТ/r/n
{а вот здесь пустая строка (точнее она ее станет если СТЕРЕТЬ все ВНУТРИ скобок и сами скобки}/r/n
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 10.06.2015 в 14:03.
evg_m вне форума Ответить с цитированием
Старый 10.06.2015, 14:38   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
var fs = require('fs');
var input = './input/'; 
var output = './output/';
fs.readdir(input, function(err, files){
    if (err) {
        console.error(err);
    } else {
        files.forEach(function( file ){
            fs.readFile( input+file, function( err, data ){
                if (err) {
                    console.error(err);
                } else {
                    var content = (''+data).
                        replace(/^\s+\r?\n/g,'').
                        replace(/(\r?\n)\s+\r?\n/g,'$1');
                    fs.writeFile(output+file, content, function(err){
                        if (err) {
                            console.error(err);
                        } else {
                            console.log( file, ' ready' );
                        }
                    });
                };
            } )
        });
    }
});
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 10.06.2015, 16:32   #5
dumaser79
 
Регистрация: 22.01.2015
Сообщений: 6
По умолчанию

Спасибо всем за ответы, ситуация такая у меня в директории на компе есть 1000 текстовиков
т.е. в папке 1000 файлов txt
с именами

sitemap1.txt
sitemap2.txt
sitemap3.txt

и таких 1000 файлов, и в каждом файле последняя строка пустая, а это недопустимо, ее можно удалить вручную но 1000 файлов руками лопатить неохота!




я так понимаю последний ответ это код пхп

___________________________________ ___________

Код:
var fs = require('fs');
var input = './input/'; 
var output = './output/';
fs.readdir(input, function(err, files){
    if (err) {
        console.error(err);
    } else {
        files.forEach(function( file ){
            fs.readFile( input+file, function( err, data ){
                if (err) {
                    console.error(err);
                } else {
                    var content = (''+data).
                        replace(/^\s+\r?\n/g,'').
                        replace(/(\r?\n)\s+\r?\n/g,'$1');
                    fs.writeFile(output+file, content, function(err){
                        if (err) {
                            console.error(err);
                        } else {
                            console.log( file, ' ready' );
                        }
                    });
                };
            } )
        });
    }
});
___________________________________ ___________


мне что нужно записать это код в файл к примеру index.php
и запустить его под денвером?
предварительно поместив 1000 файлов в директорию index.php дабы скрипт убил во всех файлах последнюю строку!

или мож кто имеет прогу для такой цели?
http://autosobi.ru - Автобазар России.

Последний раз редактировалось Stilet; 11.06.2015 в 10:28.
dumaser79 вне форума Ответить с цитированием
Старый 10.06.2015, 21:29   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dumaser79 Посмотреть сообщение
я так понимаю последний ответ это код пхп
насколько я понимаю, это код на JavaScript


У Вас все файлы локальные (ну, раз речь идёт про Denwer)?
все файлы лежат в одном каталоге или в разных подкаталогах?
Можете один ЛЮБОЙ ваш файл (ну, разумеется, чтобы в конце была пустая строка) запаковать в архив и архив выложить сюда, на форум?

Последний раз редактировалось Serge_Bliznykov; 10.06.2015 в 21:32.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.06.2015, 21:43   #7
dumaser79
 
Регистрация: 22.01.2015
Сообщений: 6
По умолчанию

да все локальные!
и все лежат в одной папке

с такими именами
sitemap1.txt
sitemap2.txt
sitemap3.txt

пример файла прилагаю!
file1.rar

нужен скрипт который пройдется по всем текстовикам
sitemap1.txt
sitemap2.txt
sitemap3.txt


и удалит последнюю пустую строку
http://autosobi.ru - Автобазар России.
dumaser79 вне форума Ответить с цитированием
Старый 10.06.2015, 22:49   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
насколько я понимаю, это код на JavaScript
Да, это мой JS, который не режет только последнюю строчку
добавить только
Код:
replace(/\r?\n\s+$/g,'')
и плюс последняя)
Ну блин это на любом языке сделать как 2 пальца обб- ну вы поняли...
Неужели нельзя такое в два клика сделать в батнике или ... или... блин, на пыхе, если чуток погуглить? Надо прочитать дирикторию, прочитать каждый файл, у каждого удалить пустые строки, сохранить файло. ВСЕ!
в 1998 году надо мной бы поржал мой преподаватель с курсов программирования, если бы я сам до этого не допер!
С учетом прогресса и закона Виннера, малолетние "хакеры" уже в 10 лет должны втыкать в регулярки!
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 11.06.2015, 00:29   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

набросал "на коленке" программку на Delphi
DeleteLastLine.rar

Внимание! Обрабатывает по кнопке без всяких вопросов.
Резервных копий не делает, позаботесь об этом сами.

если вдруг надо, то исходники тоже отдам.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.06.2015, 09:17   #10
dumaser79
 
Регистрация: 22.01.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
набросал "на коленке" программку на Delphi
Вложение 75491

Внимание! Обрабатывает по кнопке без всяких вопросов.
Резервных копий не делает, позаботесь об этом сами.

если вдруг надо, то исходники тоже отдам.


Огромное спасибо, все работает быстро! отлично что есть такие люди, уверен ваша программа еще многим поможет, так как я рыл инет и много вопросов по этой теме именно с последней строкой.
http://autosobi.ru - Автобазар России.
dumaser79 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со строкой поиска на крыльях любви Помощь студентам 14 16.05.2014 11:58
Delphi сортировка строк в txt файлах sokolik-117845 Общие вопросы Delphi 5 09.04.2012 14:01
Два текстовых файла. Записать в третий те строки, которые есть и в первом, и во втором файлах (Паскаль) dark999 Паскаль, Turbo Pascal, PascalABC.NET 4 28.03.2011 21:41
Проблема со строкой Djonik Общие вопросы Delphi 4 16.04.2009 12:32
Есть менюшка. Нужно сделать чтобы курсор был самой строкой. Небесный Паскаль, Turbo Pascal, PascalABC.NET 5 03.10.2007 19:46