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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2009, 16:46   #1
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию Удаление строки из файла.

У меня есть текстовый файл. В нем лежат символьные строки. Программа их все считывает и выводит на экран. Пользователь может по желанию удалить строку. Подскажите, пожалуйста, как удалить строку из файла, выбранную пользователем.
Arhe вне форума Ответить с цитированием
Старый 25.10.2009, 00:47   #2
H'orn
Пользователь
 
Аватар для H'orn
 
Регистрация: 19.10.2009
Сообщений: 37
По умолчанию

Вот код если надо удалять строку по номеру,
код кривой но работает

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace DelStr
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = "d:\\1.txt";
            string str = "";
            FileStream f;
            StreamReader f_reder1;
            

            try
            { f = new FileStream(filename , FileMode.Open); }
            catch (FileNotFoundException exc)
            {
                Console.WriteLine(exc.Message);
                return;
            }
            catch
            { 
                Console.WriteLine("Some error!");
                return;
            }

            //заносим покок в ридер
            f_reder1 = new StreamReader(f);
            

            //считываем по строчно и выводим на екран
            //подумай как узнать сколько строк в файле место того чтобы задавать константу 100 :) 
            string[] buffarr = new string[100];
            int N = 0;
            while ((str = f_reder1.ReadLine()) != null)
            {
                buffarr[N] = str;
                N++;
                Console.WriteLine(str);
            }
            //теперь по сути все просто узнать у пользователя какую строку он хотит удалить
            //допустим это 5 строка
            f.Dispose();
            f = new FileStream(filename, FileMode.Create);
            StreamWriter f_writer;
            f_writer = new StreamWriter(f);
            for(int i = 0; i < N; i++)
            {
                if (i != 4)
                {
                    f_writer.Write((string)buffarr[i]+"\r\n");
                }
            }
                        
            Console.WriteLine(N);

           
            f_writer.Close();
            f_reder1.Close();
            f.Close();
           
            Console.ReadKey();
        }
    }
}

Последний раз редактировалось Sazary; 25.10.2009 в 02:40.
H'orn вне форума Ответить с цитированием
Старый 25.10.2009, 11:02   #3
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

А я бы сделал так:

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите имя файла: ");
            string FName = Console.ReadLine();
            List<string> file = System.IO.File.ReadAllLines(FName, Encoding.GetEncoding(1251)).ToList();
            for (int i = 0;i<file.Count;i++)
            {
                Console.WriteLine("{0}: {1}", i+1, file[i]);
            }
            Console.Write("Какую строку удалить?: ");
            file.RemoveAt(Convert.ToInt32(Console.ReadLine())-1);
            System.IO.File.WriteAllLines(FName, file.ToArray(), Encoding.GetEncoding(1251));
            Console.ReadKey();
        }
    }
}
Если хотите вывести все строки из файла после удаления, то просто после строки file.RemoveAt(Convert.ToInt32(Conso le.ReadLine())-1); вставьте цикл for ещё раз!

Последний раз редактировалось Никки; 25.10.2009 в 11:06.
Никки вне форума Ответить с цитированием
Старый 26.10.2009, 17:36   #4
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию

Спасибо большое !
Arhe вне форума Ответить с цитированием
Старый 03.11.2009, 12:12   #5
arseniakisa
Новичок
Джуниор
 
Аватар для arseniakisa
 
Регистрация: 03.11.2009
Сообщений: 2
По умолчанию

Ой и мне помогло, спасибо!!!
http://ahotel-spb.ru
arseniakisa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки Minton87 Общие вопросы Delphi 4 07.05.2009 02:32
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Удаление строки из файла Македонский Общие вопросы Delphi 5 29.08.2007 15:40