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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как записать строку не в конец файла 
:(
    Опции темы
artstalker
Дата 24.2.2009, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне необходимо записать строку не в конец файла, а допустим в какую-то произвольную строку. Как это сделать?
PM MAIL   Вверх
War_Chief
Дата 24.2.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 10.7.2007
Где: Украина,Киев

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



Может так:
Код

FileStream fs=new FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter sw=new StreamWriter(fs);
fs.Seek(10,SeekOrigin.Begin);//первый параметр смещение в байтах(помоему), ну а второй точка отсчета.
sw.WriteLine("Hello");
sw.Close();
fs.Close();

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


Шустрый
*


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

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



Мм, а как я могу узнать  какое смещение мне выбрать, если я пишу построчно  с помощью StreamWriter.
Вобщем вот более подробно:
 Есть функция, которая выполняет чтение некого файла построчно, выполняет некоторые преобразования и записывает в другой файла. Так вот при выполнении одного из условий строка должна записываться не в конец файла, а допустим в (кол-во строк-5). Файлы довольно таки объёмные: 3000 строк и более. Поэтому ищу какой-то более-менее приемлемый, простой и самое главное не затратный способ.

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



записать в середину файла нельзя. Только в новый файл, либо, как уже указывали перетерев часть информации в старом файле. Т.еэ еще раз: нельзя "расширить" файл получив свободный кусок в середине. Самый не затратный способ это Memory Mapped Files (не знаю как это реализуется в .net, думаю что никак без pinvoke подобного).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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