редактирование файлов на с#

  • Автор темы F1ztech
  • Дата начала
F

F1ztech

#1
такой вопрос, как в с# из существующего файла удалить часть текста?
т.е например есть файл в котором написано "абвгд" и нужно стереть из него "абв" и оставить "гд".
 
P

Pasha

#2
Для: F1ztech
1. Открыть файл.
2. Прочитать из него текст.
3. Закрыть файл.
4. Заменить в прочитанном тексте "абв" на "".
5. Открыть файл.
6. Записать в него новый текст.
7. Закрыть файл.
 
F

F1ztech

#3
если так сделать в файле окажется "гдвгд" т.к старое не сотреться а просто вместо аб запишется гд
 
P

Pasha

#4
Для: F1ztech
А как ты файл открываешь в пункте 5? Делай File.CreateText().
 
N

Nightmare_76

#5
А если файл длинной несколько (десятков) гигабайт? B)
 
P

Pasha

#6
Для: Nightmare_76
Сделать CreateFileMapping, несколько раз { MapViewOfFile, позаменять строчки, UnmapViewOfFile }, CloseHandle, потом открыть SetFilePointer, SetEndOfFile, закрыть. Но для замены "абвгд" на "гд" получается слишком много телодвижений.
 
B
#7
Для: Nightmare_76
Тогда открываешь 2 файла: один на чтение, другой (гдето в папке temp) на запись. И перегоняешь содержимое первого файла (без "абв") в другой. Потом переносишь второй файл на место первого.
 
N

Nightmare_76

#8
Тогда открываешь 2 файла: один на чтение, другой (гдето в папке temp) на запись. И перегоняешь содержимое первого файла (без "абв") в другой. Потом переносишь второй файл на место первого.
Не, непойдёт, перегонку придётся делать способом который предложил Pasha
 
P

Pasha

#9
Для: Nightmare_76
Почему не пойдет? Вполне нормальный метод, только места много просит на диске.
 
B
#10
<!--QuoteBegin-Nightmare_76+9:10:2007, 18:05 -->
<span class="vbquote">(Nightmare_76 @ 9:10:2007, 18:05 )</span><!--QuoteEBegin-->Не, непойдёт, перегонку придётся делать способом который предложил Pasha
[snapback]81164" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну ненаю. Несколько 10-ков гигабайт обработать это по времени сколько?

Такая ситуация запустилась обработка, и через некоторое время аварийно завершилась, что стало с обрабатываем файлом?.
 
P

Pasha

#11
<!--QuoteBegin-BVS+10:10:2007, 20:42 -->
<span class="vbquote">(BVS @ 10:10:2007, 20:42 )</span><!--QuoteEBegin-->Такая ситуация запустилась обработка, и через некоторое время аварийно завершилась, что стало с обрабатываем файлом?.
[snapback]81325" rel="nofollow" target="_blank[/snapback]​
[/quote]Если кроме мегазамены делать еще и журналирование - то ничего. SQL Server ведь редактирует свои файлы, и при этом обычно переживает перезагрузку.
<!--QuoteBegin-BVS+10:10:2007, 20:42 -->
<span class="vbquote">(BVS @ 10:10:2007, 20:42 )</span><!--QuoteEBegin-->Ну ненаю. Несколько 10-ков гигабайт обработать это по времени сколько?
[snapback]81325" rel="nofollow" target="_blank[/snapback]​
[/quote]Прочитать 10 гигабайт в нормальных условиях - минуты 3. Записать - еще 3.