Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive Объектно-ориентированное программирование на С++ - eDrive
FileClose (f); } } 70 Следующий пример посвящен изменению содержимого файла. Вначале текст файла считывается в массив, который преобразуется в строку. В этой строке отыскивается заданное слово и заменяется фразой «[Удалено]», а файл заполняется пробелами. После этого измененная строка возвращается в файл. void Files3 () { AnsiString word = MyForm–>Edit1–>Text, file = MyForm–>Edit2–>Text, bText =""; try { int bFile = FileOpen (file, fmOpenReadWrite); int bLen = FileSeek (bFile, 0, 2); char *b = new char [bLen]; FileSeek (bFile, 0, 0); FileRead (bFile, b, bLen); bText =AnsiString (b, bLen); delete [] b; int index = bText.AnsiPos (word.c_str()); if (!index) { ShowMessage ("В файле нет такого слова"); FileClose (bFile); return; } bText.Delete (index, word.Length ()); bText.Insert ("[Удалено]", index); FileSeek (bFile, 0, 0); AnsiString c = AnsiString::StringOfChar (' ', bLen); FileWrite (bFile, c.c_str (), bLen); FileSeek (bFile, 0, 0); FileWrite (bFile, bText.c_str (), bText.Length ()); FileClose (bFile); } catch (...) { ShowMessage ("Ошибка файловой операции"); } ShowMessage (bText); } Пример удаления фрагмента, заданного в Edit1, из файла, в котором содержится указанная в Label1 фраза:
void _ _fastcall TForm1::DelFromFileClick (TObject *Sender) { AnsiString is = Label1–>Caption, what = Edit1–>Text, was = is; int f = is.AnsiPos (what.c_str ()); ShowMessage (is+ ' ' +IntToStr (is.Length ())); If (f) is.Delete (f, what.Length ()); ShowMessage (is + ' ' + IntToStr (is.Length ())); Label3–>Caption = is; f = FileOpen ("tempFile.txt", fmOpenWrite); if (f != –1) { is += AnsiString::StringOfChar (' ', was.Length ()); FileWrite (f, is.c_str (), is.Length ()); FileClose (f); } } 71 Еще один пример демонстрирует процесс поиска файла, в том числе с символом подстановки *, в текущей папке и в папке Windows: void Files4 () { char buffer[256]; GetWindowsDirectory (buffer, sizeof (buffer)); AnsiString file = FileSearch (MyForm–>Edit1–>Text, GetCurrentDir() + ";" + AnsiString (buffer)); if (file.IsEmpty ()) ShowMessage ("Нет файла " + MyForm–>Edit1–>Text); else ShowMessage ("Есть файл " + file + " !"); } Работа с графическими файлами К графическим компонентам, поддерживающим файловый обмен своими методами SaveToFile и LoadFromFile, относятся TPicture, TOLE- Graphic, TGraphic и производные от них классы. Рассмотрим несколько примеров: Пример использования графических файлов: // Картинки из файлов void __fastcall TForm1::GraphFilesClick (TObject *Sender){ AnsiString fName = "D:\\examples\\scan.bmp"; Image1–>Picture–>LoadFromFile (fName); Form1–>Icon–>LoadFromFile ("scan.ico"); Graphics::TBitmap *gb = new Graphics::TBitmap; gb–>LoadFromFile (fName); PaintBox1–>Canvas–>Draw (0, 0, gb); this–>Canvas–>CopyMode = cmSrcPaint;
- Page 19 and 20: 19 void _ _fastcall TForm1::MyClick
- Page 21 and 22: 21 фигурные скобки.
- Page 23 and 24: 23 Типы указываются
- Page 25 and 26: 25 Простые оператор
- Page 27 and 28: Метод IsDelimiter (AnsiString&
- Page 29 and 30: 29 Variant v = Edit3->Text; Label3-
- Page 31 and 32: 31 6. Как передаются
- Page 33 and 34: Условный оператор 3
- Page 35 and 36: } 35 case 4: day = "Четверг"
- Page 37 and 38: 37 void Whiles1 () { int temp = 10,
- Page 39 and 40: 39 В следующем приме
- Page 41 and 42: 41 Число байтов, выд
- Page 43 and 44: Перестановки и сор
- Page 45 and 46: } 45 for (int i=1; i=0 + 1; - -j) i
- Page 47 and 48: 47 нять, создавать с
- Page 49 and 50: lb->LoadFromFile (“1.txt”); Sho
- Page 51 and 52: 51 При передаче в фу
- Page 53 and 54: 53 } // 0 1 Иванов 2 Петр
- Page 55 and 56: 55 void Info (TList *vl) { AnsiStri
- Page 57 and 58: Allocate (k[0], k[1], book1); Alloc
- Page 59 and 60: 59 else ShowMessage ("Такой ч
- Page 61 and 62: 61 for (rj=n.rbegin (); rj!=n.rend
- Page 63 and 64: int i, d[] = { 5, 2, 3, 8, 3, 1, 3
- Page 65 and 66: 22. Каков принцип де
- Page 67 and 68: StringGrid1->Cells[0][j] = myS[j].a
- Page 69: void Files2 () { AnsiString from =
- Page 73 and 74: 73 Фрагмент обработ
- Page 75 and 76: 75 отказ в доступе, EM
- Page 77 and 78: 77 //myApplication.cpp #include "my
- Page 79 and 80: 79 Для подключения н
- Page 81 and 82: 81 Управление созда
- Page 83 and 84: 83 Контрольные вопр
- Page 85 and 86: 85 для построения ма
- Page 87 and 88: 87 В C++Builder все подкл
- Page 89 and 90: 89 ODBC в папке Панель
- Page 91 and 92: void _ _fastcall TDBForm1::ConnectC
- Page 93 and 94: 93 Для подключения з
- Page 95 and 96: 95 Контрольные вопр
- Page 97 and 98: class VPC { private: int type; Ansi
- Page 99 and 100: 99 AnsiString result; VDeque *curso
- Page 101 and 102: } 101 VList a (3); // констр
- Page 103 and 104: }; VStackAndQueue (AnsiString str);
- Page 105 and 106: }; 105 public: VSecond (AnsiString
- Page 107 and 108: } ShowMessage ("Старое вре
- Page 109 and 110: } 109 AnsiString temp; for (i=0; i
- Page 111 and 112: 111 }; int VPrice::operator > (cons
- Page 113 and 114: 113 void MainVVector () { VVector
- Page 115 and 116: 115 void MainVEqu() { // x + 4y = 9
- Page 117 and 118: 117 Виртуальные функ
- Page 119 and 120: 119 virtual Тип имяФункц
void _ _fastcall TForm1::DelFromFileClick (TObject *Sender) {<br />
AnsiString is = Label1–>Caption, what = Edit1–>Text, was = is;<br />
int f = is.AnsiPos (what.c_str ());<br />
ShowMessage (is+ ' ' +IntToStr (is.Length ()));<br />
If (f) is.Delete (f, what.Length ());<br />
ShowMessage (is + ' ' + IntToStr (is.Length ()));<br />
Label3–>Caption = is;<br />
f = FileOpen ("tempFile.txt", fmOpenWrite);<br />
if (f != –1) {<br />
is += AnsiString::StringOfChar (' ', was.Length ());<br />
FileWrite (f, is.c_str (), is.Length ());<br />
FileClose (f);<br />
}<br />
}<br />
71<br />
Еще один пример демонстрирует процесс поиска файла, в том числе с<br />
символом подстановки *, в текущей папке и в папке Windows:<br />
void Files4 () {<br />
char buffer[256];<br />
GetWindowsDirectory (buffer, sizeof (buffer));<br />
AnsiString file = FileSearch (MyForm–>Edit1–>Text, GetCurrentDir() +<br />
";" + AnsiString (buffer));<br />
if (file.IsEmpty ()) ShowMessage ("Нет файла " + MyForm–>Edit1–>Text);<br />
else ShowMessage ("Есть файл " + file + " !");<br />
}<br />
Работа с графическими файлами<br />
К графическим компонентам, поддерживающим файловый обмен<br />
своими методами SaveToFile и LoadFromFile, относятся TPicture, TOLE-<br />
Graphic, TGraphic и производные от них классы. Рассмотрим несколько примеров:<br />
Пример использования графических файлов:<br />
// Картинки из файлов<br />
void __fastcall TForm1::GraphFilesClick (TObject *Sender){<br />
AnsiString fName = "D:\\examples\\scan.bmp";<br />
Image1–>Picture–>LoadFromFile (fName);<br />
Form1–>Icon–>LoadFromFile ("scan.ico");<br />
Graphics::TBitmap *gb = new Graphics::TBitmap;<br />
gb–>LoadFromFile (fName); PaintBox1–>Canvas–>Draw (0, 0, gb);<br />
this–>Canvas–>CopyMode = cmSrcPaint;