Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Текстовый файл и удаление символов в строке


Автор: Ev1L 4.11.2010, 11:32
Текстовый файл (его имя задать как параметр командной строки) содержит строки, часть которых начинается с символа #. Выбрать эти строки ,удалить символ # и записать измененные строки в том же порядке в файл output1.txt. Остальные строки (которые не начинаются с символа # ) в том же порядке записать в файл output2.txt.

Вот такая вот задача,помогите пожалуйста (самостоятельно ещё ничего не наработал,т.к. сегодня только получил это задание и понял,что не понял как это сделатьsmile)

Автор: Fitc 4.11.2010, 15:50
Цитата
Текстовый файл (его имя задать как параметр командной строки) содержит строки, часть которых начинается с символа #. Выбрать эти строки ,удалить символ # и записать измененные строки в том же порядке в файл output1.txt. Остальные строки (которые не начинаются с символа # ) в том же порядке записать в файл output2.txt.

Вот такая вот задача,помогите пожалуйста (самостоятельно ещё ничего не наработал,т.к. сегодня только получил это задание и понял,что не понял как это сделатьsmile)


1)  взять из args[0] имя файла
2) взять строки из файла: string[] s1 = File.ReadAllLines("[путь]");
3) взять строки, которые начинаются с '#': 
Код

var s2=new List<string>();
var s3=new List<string>();
foreach(var str in s1)
if(str[0]=='#') s2.Add(str);
 else s3.Add(str);

4) убрать первую букву (мне лень смотреть посмотри сам - класс String)
5) записать строки в файлы: http://msdn.microsoft.com/en-us/library/6ka1wd3w.aspx

Автор: Ev1L 4.11.2010, 21:01
спасибо,именно то,как удалить символ в строке я и не знал.
Всё остальное же я знаю,но как это организовать у меня в мозгу не хватает ОЗУ_)
но буду пытаться.

Автор: wester 4.11.2010, 22:44
Ev1L
String.Remove()
за разьяснением в msdn.
если все таки непонятно, могу наваять примерчик.

Автор: Ev1L 4.11.2010, 23:23
огромное всем спасибо
завтра буду лепить из этого что нибудь)

Автор: Ev1L 24.12.2010, 21:13
ещё такой вопросик:
задание :
В текстовом файле найти самую короткую(длинную) строку и записать её и её номер в другой файл.

как записать и всё такое я знаю)
мне нужен фрагмент кода, в котором осуществляется поиск самой короткой строки и её номер.
будьте любезны smile

Автор: wester 24.12.2010, 21:36
Ev1L
Код

var finalLine="";
String line = "";
var count =0;
var countFinal=0;
using(var streamReader = new StreamReader(@"C:\file.txt))
{
    while((line=streamReader.ReadLine())!=null)
    {
        count++
        if(line.Length<len)
        {
            countFinal = count;
            finalLine = line;            
        }
    }
}

писал в блокноте,возможно есть ошибки, но идея понятна

Автор: Ev1L 25.12.2010, 18:07
Цитата

Ev1L
Код

var finalLine="";
String line = "";
var count =0;
var countFinal=0;
using(var streamReader = new StreamReader(@"C:\file.txt))
{
    while((line=streamReader.ReadLine())!=null)
    {
        count++
        if(line.Length<len)
        {
            countFinal = count;
            finalLine = line;            
        }
    }
}

писал в блокноте,возможно есть ошибки, но идея понятна

что-то не получается:(

Автор: Kaerus 27.12.2010, 00:11
Попробуй
Код

string[] lines = File.ReadAllLines(path);
int max = Array.FindIndex(lines, s => s.Length == lines.Max(a => a.Length));


Самую короткую аналогично (max меняем на min)
Код

string[] lines = File.ReadAllLines(path);
int max = Array.FindIndex(lines, s => s.Length == lines.Min(a => a.Length));

Автор: Ev1L 28.12.2010, 23:54
а можно подробно?( я новичек в программировании...не всё толком понимаю.

Автор: Kaerus 29.12.2010, 00:41
Можно проще
Код

// MSDN - http://msdn.microsoft.com/ru-ru/library/s2tte0y1.aspx
// Считывание всех строк из файла
string[] lines = File.ReadAllLines(@"D:\text_file.txt");

// MSDN - http://msdn.microsoft.com/ru-ru/library/bb535031.aspx
// Поиск длинны самой длинной строки
int maxLength = lines.Max(s => s.Length);

// MSDN - http://msdn.microsoft.com/ru-ru/library/03y7c6xy.aspx
// Поиск идекса строки длинна которой равна самой длинной
int index = Array.FindIndex(lines, s => s.Length == maxLength);

Автор: Ev1L 29.12.2010, 19:18
Спасибо,работает=)
премного благодарен

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)