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

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
В переменное есть путь к файлу,
Нужно очистить его от пустых строк,
Есть какой то минимальный метод на C# ?
 

Radzhab

Client
Joined
May 23, 2014
Messages
1,500
Reaction score
1,268
Points
113
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;
 
  • Thank you
Reactions: nomarketing

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;
Неее..данный с пустой строкой уже в файле.
К примеру есть выполнить экшен, Удалить строку (при этом список привязан)
То при удалении остаются пустые строки.
Мне нужно прочитать файл - удалить пустые строки и сохранить.
 

Irbis

Client
Joined
Mar 2, 2014
Messages
195
Reaction score
121
Points
43
Code:
 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 "Файл не найден";
            }
 

Irbis

Client
Joined
Mar 2, 2014
Messages
195
Reaction score
121
Points
43
Нужно ещё добавить директиву "using"
Code:
System.IO
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Code:
 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#)

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

Code:
var text = project.Variables["ДанныеСпустойСтрокой"].Value; // Сперва читаем данные из файла и пишет в переменную "ДанныеСпустойСтрокой"
var rez = text.Trim();
return rez;
1.Взять строку
2.СиОбработчик
3.Сохранить в файл.

Но как сделать все 3 действие одним экшеном ?
 

Irbis

Client
Joined
Mar 2, 2014
Messages
195
Reaction score
121
Points
43
Добавляем директиву "using"
Code:
System.IO
Выполняем код C#:
Code:
// Получаем путь к файлу.
// В 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 "Файл не найден";
            }
 
  • Thank you
Reactions: SHILY

lokiys

Moderator
Joined
Feb 1, 2012
Messages
4,858
Reaction score
1,193
Points
113
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;
 

Tuw

Client
Joined
Sep 7, 2014
Messages
441
Reaction score
150
Points
43
Подскажите пожалуйста, что у меня не так? Вроде все подставил, а не обрабатывает и не работает https://www.sendspace.com/file/897wmb
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113
Инди вам написал хороший вариант
 

LexxWork

Client
Joined
Oct 31, 2013
Messages
1,190
Reaction score
792
Points
113
Я решил проверить код lokiys. Показалось, что там ошибка, написал пост, но потом решил его удалить, потому коде в нет ошибки.
 
Last edited:

Tuw

Client
Joined
Sep 7, 2014
Messages
441
Reaction score
150
Points
43

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113
А что ваш шаб должен делать? Бы получаете количество строк в списке и потом зачем-то делаете trim этого числа.
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
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;

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

LmPopo

Client
Joined
Dec 6, 2012
Messages
299
Reaction score
136
Points
43

Attachments

  • Thank you
Reactions: nomarketing

lokiys

Moderator
Joined
Feb 1, 2012
Messages
4,858
Reaction score
1,193
Points
113
Не работает !
Пишет ошибку проэкта. и не начинает его выполнять.
Добавил в панель Директиву Using

using System.IO;

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

Vsjo rabotajek kak nado.
 

Attachments

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Cg
Спасибо.
Так работает хорошо.
А вот примерчик с патчем есть типа C:\folder\111.txt
Ибо если я вставляю туда пач нивкакую не хочет запускатся... вот не знаю в чем дело - прикрепите пожалуйсто рабочий пример с патчем.

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

Code:
// 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;
 

lokiys

Moderator
Joined
Feb 1, 2012
Messages
4,858
Reaction score
1,193
Points
113
Cg

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

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

Code:
// 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" :-)
 
  • Thank you
Reactions: nomarketing

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
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" :-)
Спасибо первый пример работает !
 

Tuw

Client
Joined
Sep 7, 2014
Messages
441
Reaction score
150
Points
43
Vsjo rabotajek kak nado.
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Еще один вопрос, прочитать список сохранить его ? c#
Нашел на форуме

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


ZennoLab.TemplateManipulator.V4.ComponentBlocks.ListV4
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
ее может там и не быть. посчитайте в PM количество строк в списке, сверьте.
было такое, смущало, а на деле не было этой строки
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Ага понял, там нельзя вывести весть список в ретурн..
Ну посчитать можно, если можно значить список работает.
Как его сохранить ? или нельзя с помощью си прочитать список и сохранить его в файл ?
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Вообщем всем спасибо, открыл пару мануалов по си шарпу вроде разобираюсь по немногу :-)
 

LmPopo

Client
Joined
Dec 6, 2012
Messages
299
Reaction score
136
Points
43
Спасибо! Все работает и удаляет строки, только вот оставляет одну строчку пустую в конце( Повторным запуском экшена не удаляет ее
Тоже озаботился записью в конец пустой строки, пробую изменённый код от lokiys, работает норм, теперь думаю нет ли тут ошибки, которая приведёт к порче файла.
Можно так?
Code:
// 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;
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113
А чем код локи неверен?
 

LmPopo

Client
Joined
Dec 6, 2012
Messages
299
Reaction score
136
Points
43
Верен, но не устраивает запись пустой строки в конец, т.к. избавляемся же от них.
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,718
Points
113

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)