// Для определения размера диска используйте функцию DiskSize,
объявленную в Sysutils.hpp. В параметрах функции диску А соответствует 1, диску
В - 2, и т. д., 0 - текущий диск. Следующий код определит размер диска С в
байтах. __int64 Size = DiskSize(3);
// Для определения свободного
пространства на диске используйте функцию DiskFree, объявленную в Sysutils.hpp.
В параметрах функции диску А соответствует 1, диску В - 2, и т. д., 0 - текущий
диск. Следующий код определит размер свободного пространства на диске С в
байтах. __int64 FreeSpace = DiskFree(3);
//
Для удаления файла надо подключить к проекту Sysutils.hpp и напишите следующий
код: void __fastcall TForm1::Button1Click(TObject
*Sender) { AnsiString FileName="c:\readme.txt"; if
(DeleteFile(FileName)) Label1->Caption="true"; }
// Для того, чтобы стандартными средствами C++Builder'a работать с
файлами GIF и JPEG, добавьте в начало программы следующий
код: TPicture *Picture = new
TPicture(); Picture->RegisterFileFormat(__classid(TJPEGImage),
"jpg", "jpg", __classid(TJPEGImage)); delete
Picture;
void __fastcall TForm1::Button1Click(TObject
*Sender) { //copy all from program
files if(!MoveFiles("c:\program files\*.*",
"c:\temp")) ShowMessage("Ok"); else
ShowMessage("No"); } // В функции MoveFiles первый
параметр что копировать, // второй куда копировать FAQ с сайта Borland X
Portal
// Для поиска файлов в каталоге и его подкаталогах напишите
следующий код: void ListFiles(AnsiString path, TStrings*
List) { // Эта процедура выводит список файлов и
вызывает // саму себя для всех
каталогов TSearchRec sr; if (FindFirst(path+"*.*",
faAnyFile, sr) == 0) { do { if (sr.Attr &
faDirectory) { if (sr.Name!=".") if
(sr.Name!="..") { ListFiles(path+sr.Name+"\",List);// Рекурсивный
вызов } } else { AnsiString
Ext=ExtractFileExt(sr.Name).UpperCase(); if
(Ext==".CPP") List->Add(path+sr.Name); } } while
(FindNext(sr) ==
0); FindClose(sr); } Application->ProcessMessages(); }
// Для того чтобы выбрать папку из диалога напишите следуюший
код: #include <FileCtrl.hpp> .. .. .. .. AnsiString way =
"c:\"; if(SelectDirectory("Укажите путь к папке","",way))
Label1->Caption = way;
// Для того чтобы удалить папку и все файлы в ней напишите следующую
функцию: bool DeleteDir(AnsiString DirName) { TSearchRec
sr; if (DirName.Length()) { if
(!FindFirst(DirName+"\*.*",faAnyFile,sr)) do { if
(!(sr.Name=="." || sr.Name==".."))// это удалять не
надо if (((sr.Attr & faDirectory) == faDirectory )
|| (sr.Attr == faDirectory))// найдена
папка { FileSetAttr(DirName+"\"+sr.Name, faDirectory
);// сброс всяких
read-only DeleteDir(DirName+"\"+sr.Name);//рекурсивно удаляем содержимое RemoveDir(DirName +
"\"+sr.Name);// удаляем теперь уже пустую
папку } else// иначе найден
файл { FileSetAttr(DirName+"\"+sr.Name, 0);// сброс всяких
read-only DeleteFile(DirName+"\"+sr.Name);//
удаляем файл } } while (!FindNext(sr));// ищем опять, пока не найдем
все FindClose(sr); } RemoveDir(DirName); return
true; }
TRegistry *Reg; Reg=NULL; try { Reg=new
TRegistry; Reg->RootKey=HKEY_CLASSES_ROOT; Reg->OpenKey("\.ant",true); Reg->WriteString("","MyProgram"); Reg->CloseKey(); Reg->OpenKey("\MyProgram",
true); Reg->WriteString("","My
document"); Reg->CloseKey(); Reg->OpenKey("\MyProgram\Shell\Open\Command",true); Reg->WriteString("",ParamStr(0)+"
"%1""); Reg->CloseKey(); Reg->OpenKey("\MyProgram\DefaultIcon",true); Reg->WriteString("",ParamStr(0)+",
1"); Reg->CloseKey(); } __finally { if
(Reg!=NULL)delete Reg; } // Весь текст генерирует
расширение *.ant
// А этот код загружает файл с расширением *.ant в
Image1. if
(ParamCount>0) { asFileName=ParamStr(1); if
(FileExists(asFileName))
Image1->Picture->LoadFromFile(asFileName); else
ShowMessage(asFileName+" ОШИБКА ЗАГРУЗКИ ФАЙЛА!!!"); } Автор: ant47
После публикации 29 тестовых версий
анонсирован первый стабильный релиз
MySQL 5.1, пригодный для
промышленной эксплуатации и обеспечивающий увеличение производительности для
"тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные
новшества
появившиеся в MySQL 5.1:
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.