• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

F1ztech

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

Pasha

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

F1ztech

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

Pasha

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

Nightmare_76

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

Pasha

Для: Nightmare_76
Сделать CreateFileMapping, несколько раз { MapViewOfFile, позаменять строчки, UnmapViewOfFile }, CloseHandle, потом открыть SetFilePointer, SetEndOfFile, закрыть. Но для замены "абвгд" на "гд" получается слишком много телодвижений.
 
B

BVS

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

Nightmare_76

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

Не, непойдёт, перегонку придётся делать способом который предложил Pasha
 
P

Pasha

Для: Nightmare_76
Почему не пойдет? Вполне нормальный метод, только места много просит на диске.
 
B

BVS

<!--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

<!--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.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!