Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление строка из файла ? 
:(
    Опции темы
jxr
Дата 2.11.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



file=File.OpenWrite("c:\\x.txt");
StreamWrite filestrm=StreamWrite(file);

хотелось удалить какую то (определенный) строку из файла !
я искаль нооо ! помогите.

PM MAIL   Вверх
mr.DUDA
Дата 4.11.2005, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Читаем весь файл в string, бъём Split-ом по "\n" (или что там в файле разделителем строк), удаляем из массива строку с нужным индексом, соединяем в один стринг Join-ом, сохраняем в файл.


--------------------
user posted image
PM MAIL WWW   Вверх
jxr
Дата 5.11.2005, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Конструктор FileStream Exception.
"Access to the path "c:\inetpub\wwwroot\AspProg\servers.txt" is denied. "
Как использавать эти конструкторы FileStream class?
c:\inetpub\wwwroot\AspProg\servers.txt -- path\file сушестьвуеть !
ASP.NET project.
private void Page_Load(....)
{
...............................
absolutePathToFile = this.Server.MapPath("servers.txt");
file=new FileStream(absolutePathToFile,FileMode.Open);
................................
}
PM MAIL   Вверх
mr.DUDA
Дата 5.11.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Попробуй указать в конструкторе FileAccess.Read, иначе если файл read-only - конструктор свалится именно с таким исключением.


--------------------
user posted image
PM MAIL WWW   Вверх
jxr
Дата 5.11.2005, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Exception нет уже ! НО ...
Я могу записать в файл ? Незаписываеться ! ниже код:
Код

                file=new FileStream(absolutePathToFile,FileMode.Open,FileAccess.Read);
                .......................................................                file=File.OpenWrite(absolutePathToFile);//эта может не быть ?
    filewrite=new StreamWriter(file);
    filewrite.Write(text);

что та не то ?
И StreamReader, и StreamWriter может работать с одним FileStream-ом ?
Если у него в конструктре есть FileAccess.Read, это возможна записать(append) ?
Меня кажеться очень сложна введены классы Файл и Стреамы !
не так ли, Спосибо !
PM MAIL   Вверх
bend0r
Дата 6.11.2005, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.9.2005

Репутация: 1
Всего: 2



можно так
Код

FileStream file = new FileStream("file.txt", FileMode.Open, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(file);
string str = "TEST!!  TEST!!!";
sw.Write(str);

FileStream file2 = new FileStream("file.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader  sr = new StreamReader(file2);
string str2;
str2 = sr.ReadLine();

file.Close();
Console.WriteLine(str2);


а можно так

Код

StreamWriter sw = new StreamWriter("file.txt");
string str = "TEST!!  TEST!!!";
sw.Write(str);
sw.Close();

StreamReader  sr = new StreamReader("file.txt");
string str2;
str2 = sr.ReadLine();
sr.Close();
Console.WriteLine(str2);





Цитата(jxr @ 5.11.2005, 22:04)
И StreamReader, и StreamWriter может работать с одним FileStream-ом ?


может.

Это сообщение отредактировал(а) bend0r - 6.11.2005, 00:20
PM MAIL   Вверх
bend0r
Дата 6.11.2005, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.9.2005

Репутация: 1
Всего: 2



можно вот так удалять.

Код

StreamReader  sr = new StreamReader("file.txt");

string str;
int i = 0; // индекс элемента массива который надо удалить.
ArrayList al = new ArrayList();

while( (str = sr.ReadLine()) != null)
    al.Add(str);
sr.Close();

al.RemoveAt(i);

StreamWriter sw = new StreamWriter("file.txt");

foreach(string s in al)
sw.WriteLine(s);

sw.Close();



PM MAIL   Вверх
jxr
Дата 6.11.2005, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Ничего не записаваеться в файл c:\xxx.txt
Если удалить файл c:\xxx.txt то при впольнение програмы
создаеться файл c:\xxx.txt ! Но в нем ничего ничего незаписано !
Почему ? Где Ошибка(и)? Для меня самый сложный часть = Files and Streams. Это что такое ... smile Помогите !
Код

using System;
using System.IO;

namespace ConApp1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            string str="Hello, World - I can not write to file.";
            StreamWriter sw=new StreamWriter("c:\\xxx.txt");
            sw.WriteLine(str);
        }
    }
}

PM MAIL   Вверх
bend0r
Дата 6.11.2005, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.9.2005

Репутация: 1
Всего: 2



потоки надо закрывать, добавь
Код

sw.Close();



PM MAIL   Вверх
jxr
Дата 6.11.2005, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Незаписиваеться !? а уж потом поток закрывать можна !
не долыжна была записаваеться все равно !
Но Записал ! Спосибо ! но в чем была проблема ? Close() так важно ?
PM MAIL   Вверх
bend0r
Дата 7.11.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.9.2005

Репутация: 1
Всего: 2



Код

sw.Flush();


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

я C# изучал по книге Шилдтета он в своих примера Flush не использовал, поэтому я привык тож сразу закрывать.
PM MAIL   Вверх
jxr
Дата 7.11.2005, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



А как добавить новая строка с
StreamWriter sw=new StreamWriter("c:\\xxx.txt");


PM MAIL   Вверх
bend0r
Дата 7.11.2005, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 14.9.2005

Репутация: 1
Всего: 2



открывает существующий файл, а не создает новый, если ты про это
Код

StreamWriter sw=new StreamWriter("c:\\xxx.txt", true);


вот тут все это есть:
http://msdn.microsoft.com/library/rus/defa...ssctorTopic.asp
PM MAIL   Вверх
jxr
Дата 7.11.2005, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Спосибо !
знаешь какая либо ссылка только по С шарп - Файл-Стреам.
самый сложно для меня ! Read,ReadWrite,Write -- Open ,OpenorCreate, Create ........
FileStream constructor arguments !!!FileMode and FileAccess !

PM MAIL   Вверх
jxr
Дата 7.11.2005, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Код


                absolutePathToFile = this.Server.MapPath("ip.txt");

                .........................................................
    filewrite=new StreamWriter(absolutePathToFile,true);        filewrite.Write("Hello,World");
                filewrite.Flush();// bez etoqo toje.
                filewrite.Close();
                ..........................................................



Это ASP.NET program.
absolutePathToFile = вы знаете !? "виртуальный путь в запрошенном URL в физический путь в сервере для текущего запроса."
Не записавает ничего в файл "ip.txt" ! Почему ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0750 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.