Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
FileClose (f);<br />
}<br />
}<br />
70<br />
Следующий пример посвящен изменению содержимого файла. В<strong>на</strong>чале<br />
текст файла считывается в массив, который преобразуется в строку. В этой<br />
строке отыскивается заданное слово и заменяется фразой «[Удалено]», а<br />
файл заполняется пробелами. После этого изменен<strong>на</strong>я строка возвращается в<br />
файл.<br />
void Files3 () {<br />
AnsiString word = MyForm–>Edit1–>Text,<br />
file = MyForm–>Edit2–>Text,<br />
bText ="";<br />
try {<br />
int bFile = FileOpen (file, fmOpenReadWrite);<br />
int bLen = FileSeek (bFile, 0, 2);<br />
char *b = new char [bLen];<br />
FileSeek (bFile, 0, 0);<br />
FileRead (bFile, b, bLen);<br />
bText =AnsiString (b, bLen);<br />
delete [] b;<br />
int index = bText.AnsiPos (word.c_str());<br />
if (!index) {<br />
ShowMessage ("В файле нет такого слова");<br />
FileClose (bFile); return;<br />
}<br />
bText.Delete (index, word.Length ());<br />
bText.Insert ("[Удалено]", index);<br />
FileSeek (bFile, 0, 0);<br />
AnsiString c = AnsiString::StringOfChar (' ', bLen);<br />
FileWrite (bFile, c.c_str (), bLen);<br />
FileSeek (bFile, 0, 0);<br />
FileWrite (bFile, bText.c_str (), bText.Length ());<br />
FileClose (bFile);<br />
} catch (...) { ShowMessage ("Ошибка файловой операции"); }<br />
ShowMessage (bText);<br />
}<br />
Пример удаления фрагмента, заданного в Edit1, из файла, в котором содержится<br />
указан<strong>на</strong>я в Label1 фраза: