Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C# & Files

17K
27 сентября 2007 года
artak
24 / / 09.06.2007
FileStream filewrite = new FileStream("New.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);

StreamWriter write = new StreamWriter(filewrite);

filewrite.Seek(3,SeekOrigin.Begin);
write.Write("Barev");
write.Flush();
write.Close();

В этом случе если файле написанно скажем Artak, то после завершение программи в файле записивается ArtBarev, а мне нужно ArtBarevak.

С помощю чего можно это сделать.
1.8K
27 сентября 2007 года
CilCatblack
251 / / 20.09.2007
Цитата: artak
FileStream filewrite = new FileStream("New.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);

StreamWriter write = new StreamWriter(filewrite);

filewrite.Seek(3,SeekOrigin.Begin);
write.Write("Barev");
write.Flush();
write.Close();

В этом случе если файле написанно скажем Artak, то после завершение программи в файле записивается ArtBarev, а мне нужно ArtBarevak.

С помощю чего можно это сделать.



Так вместо write.Write("Barev"); напиши вот так:write.Write("Barevak");;)

И да прибудет стобой сила!

5
27 сентября 2007 года
hardcase
4.5K / / 09.08.2005
Каков критерий разбивания старого содержимого файла?
17K
28 сентября 2007 года
artak
24 / / 09.06.2007
hardcase мне нужно сделать скажем UPDATE файла,но так что старие символы не повредились.
5
28 сентября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: artak
hardcase мне нужно сделать скажем UPDATE файла,но так что старие символы не повредились.


Я так понял что нужно вставить данные в середину файла таким образом, чтобы хвост файла "сдвинулся".
Вот код:

Код:
private void InsertString(string fileName, string line, long position) {
    FileInfo info = new FileInfo(fileName);
    using (FileStream stream = info.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) {
        if (position < 0)
            position = 0;
        if (position > info.Length)
            position = info.Length;
        // сохраняем старые данные
        stream.Seek(position, SeekOrigin.Begin);
        long tailLength = info.Length - position;
        byte[] tailData = new byte[tailLength];
        stream.Read(tailData, 0, (int)tailLength);
       
        // записываем новые
        stream.Seek(position, SeekOrigin.Begin);
        StreamWriter writer = new StreamWriter(stream);
        writer.Write(line);            
        writer.Flush();

        // записываем хвост
        stream.Write(tailData, 0, tailData.Length);
        stream.Flush();
    }
}
17K
29 сентября 2007 года
artak
24 / / 09.06.2007
hardcase спасибо за ответ все получилось.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог