Очистить файл от пустых строк с помощью c#

  • Автор темы Автор темы nomarketing
  • Дата начала Дата начала

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Реакции
179
Баллы
43
В переменное есть путь к файлу,
Нужно очистить его от пустых строк,
Есть какой то минимальный метод на C# ?
 
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;
 
  • Оценить
Реакции: nomarketing
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;
Неее..данный с пустой строкой уже в файле.
К примеру есть выполнить экшен, Удалить строку (при этом список привязан)
То при удалении остаются пустые строки.
Мне нужно прочитать файл - удалить пустые строки и сохранить.
 
Код:
Развернуть Свернуть Копировать
 string path = project.Variables["ДанныеСпустойСтрокой"].Value;
            if (File.Exists(path))
            {
                string[] file = File.ReadAllLines(path);
                List<string> list = new List<string>(file);
                list.RemoveAll(x => x == string.Empty);
                File.WriteAllLines(path, list);
                return "ok";
            }
            else
            {
                return "Файл не найден";
            }
 
Нужно ещё добавить директиву "using"
Код:
Развернуть Свернуть Копировать
System.IO
 
Код:
Развернуть Свернуть Копировать
 string path = project.Variables["ДанныеСпустойСтрокой"].Value;
            if (File.Exists(path))
            {
                string[] file = File.ReadAllLines(path);
                List<string> list = new List<string>(file);
                list.RemoveAll(x => x == string.Empty);
                File.WriteAllLines(path, list);
                return "ok";
            }
            else
            {
                return "Файл не найден";
            }

Ниче не понял.
Мне нужно взять файл, прочитать, удалить пустые строки, сохранить. (Все это на C#)

А принципе этот экшен работает

Код:
Развернуть Свернуть Копировать
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;

1.Взять строку
2.СиОбработчик
3.Сохранить в файл.

Но как сделать все 3 действие одним экшеном ?
 
Добавляем директиву "using"
Код:
Развернуть Свернуть Копировать
System.IO
Выполняем код C#:
Код:
Развернуть Свернуть Копировать
// Получаем путь к файлу.
// В project.Variables["ИмяПеременной"].Value должен находится полный путь к файлу.
// Например: "C:\\Folder\\file.txt".
string path = project.Variables["ИмяПеременной"].Value;
// Проверяем существует файл или нет. Если нет возвращаем строку "Файл не найден".
           if (File.Exists(path))
            {
// Читаем файл с жесткого диска.
               string[] file = File.ReadAllLines(path);
                List<string> list = new List<string>(file);
// Удаляем пустые строки.
               list.RemoveAll(x => x == string.Empty);
// Перезаписываем файл.
               File.WriteAllLines(path, list);
// Возвращаем строку "ok".
                return "ok";
            }
            else
            {
                return "Файл не найден";
            }
 
  • Оценить
Реакции: SHILY
C#:
Развернуть Свернуть Копировать
// Delete blank lines from file
string path = project.Variables["filePath"].Value; // Gets file path from your project variable with name "filePath"
var lines = System.IO.File.ReadAllLines(path).Where(arg => !string.IsNullOrWhiteSpace(arg));
System.IO.File.WriteAllLines(path, lines);
return 0;
 
Подскажите пожалуйста, что у меня не так? Вроде все подставил, а не обрабатывает и не работает https://www.sendspace.com/file/897wmb
 
Инди вам написал хороший вариант
 
Я решил проверить код lokiys. Показалось, что там ошибка, написал пост, но потом решил его удалить, потому коде в нет ошибки.
 
Последнее редактирование:
А что ваш шаб должен делать? Бы получаете количество строк в списке и потом зачем-то делаете trim этого числа.
 
C#:
Развернуть Свернуть Копировать
// Delete blank lines from file
string path = project.Variables["filePath"].Value; // Gets file path from your project variable with name "filePath"
var lines = System.IO.File.ReadAllLines(path).Where(arg => !string.IsNullOrWhiteSpace(arg));
System.IO.File.WriteAllLines(path, lines);
return 0;
Не работает !
Пишет ошибку проэкта. и не начинает его выполнять.
Добавил в панель Директиву Using

using System.IO;

ну и запускаю и ничего не запускается, писал даже где пач , не имя переменной с патчем а сам путь.. не знаю прикрепите рабочий пример, так как и во второ проэкте у меня тоже самое не знаю. почему
но перестает работать привязка.
 
Не работает !
Пишет ошибку проэкта. и не начинает его выполнять.
Добавил в панель Директиву Using

using System.IO;

ну и запускаю и ничего не запускается, писал даже где пач , не имя переменной с патчем а сам путь.. не знаю прикрепите рабочий пример, так как и во второ проэкте у меня тоже самое не знаю. почему
но перестает работать привязка.


Vsjo rabotajek kak nado.
 

Вложения

  • test.zip
    test.zip
    12,1 KB · Просмотры: 74
  • Оценить
Реакции: BraG.A и nomarketing
Cg
Спасибо.
Так работает хорошо.
А вот примерчик с патчем есть типа C:\folder\111.txt
Ибо если я вставляю туда пач нивкакую не хочет запускатся... вот не знаю в чем дело - прикрепите пожалуйсто рабочий пример с патчем.

Писал с двумя слешами и с одним, с собачкой и без

Код:
Развернуть Свернуть Копировать
// Delete blank lines from file
string path = project.Directory + @"c:\test\test.txt"; // Gets file path from your project variable with name "filePath"
var lines = System.IO.File.ReadAllLines(path).Where(arg => !string.IsNullOrWhiteSpace(arg));
System.IO.File.WriteAllLines(path, lines);
return 0;
 
Cg

Спасибо.
Так работает хорошо.
А вот примерчик с патчем есть типа C:\folder\111.txt
Ибо если я вставляю туда пач нивкакую не хочет запускатся... вот не знаю в чем дело - прикрепите пожалуйсто рабочий пример с патчем.

Писал с двумя слешами и с одним, с собачкой и без

Код:
Развернуть Свернуть Копировать
// Delete blank lines from file
string path = project.Directory + @"c:\test\test.txt"; // Gets file path from your project variable with name "filePath"
var lines = System.IO.File.ReadAllLines(path).Where(arg => !string.IsNullOrWhiteSpace(arg));
System.IO.File.WriteAllLines(path, lines);
return 0;


Nu njet tak nomozna.
Smotri

string path = project.Directory + @"c:\test\test.txt";

project.Directory - eto uze test caskj pacha to yest u tibje tjiper vot that etot smotritsa

string path = c:\test + @"c:\test\test.txt";

I togo ti hocheh dakj vot takuju path "c:\testc:\test\test.txt" :-)
 
  • Оценить
Реакции: nomarketing
Nu njet tak nomozna.
Smotri

string path = project.Directory + @"c:\test\test.txt";

project.Directory - eto uze test caskj pacha to yest u tibje tjiper vot that etot smotritsa

string path = c:\test + @"c:\test\test.txt";

I togo ti hocheh dakj vot takuju path "c:\testc:\test\test.txt" :-)
Спасибо первый пример работает !
 
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
Df1crUo.jpg
 
Еще один вопрос, прочитать список сохранить его ? c#
Нашел на форуме

Код:
Развернуть Свернуть Копировать
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
Что то в рузультате не то...


ZennoLab.TemplateManipulator.V4.ComponentBlocks.ListV4
 
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
Df1crUo.jpg
ее может там и не быть. посчитайте в PM количество строк в списке, сверьте.
было такое, смущало, а на деле не было этой строки
 
Ага понял, там нельзя вывести весть список в ретурн..
Ну посчитать можно, если можно значить список работает.
Как его сохранить ? или нельзя с помощью си прочитать список и сохранить его в файл ?
 
Вообщем всем спасибо, открыл пару мануалов по си шарпу вроде разобираюсь по немногу :)
 
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
Тоже озаботился записью в конец пустой строки, пробую изменённый код от lokiys, работает норм, теперь думаю нет ли тут ошибки, которая приведёт к порче файла.
Можно так?
Код:
Развернуть Свернуть Копировать
// Delete blank lines from file
string path = project.Variables["filePath"].Value; // Gets file path from your project variable with name "filePath"
var lines = System.IO.File.ReadAllLines(path).Where(arg => !string.IsNullOrWhiteSpace(arg));
//System.IO.File.WriteAllLines(path, lines); оригинал
System.IO.File.WriteAllText(path, string.Join(Environment.NewLine, lines)); //мой вариант
return 0;
 
А чем код локи неверен?
 
Верен, но не устраивает запись пустой строки в конец, т.к. избавляемся же от них.
 
я вот тут писал http://zennolab.com/discussion/thre...pustyx-strok-s-pomoschju-c.16481/#post-101937
я тоже часто вижу пустые строки. но при этом их там и нет вовсе, так как запись в файл идет в нужную строку если потом юзаю сам файл.
вы тестируйте прежде чем исправлять проблемы.
 

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