Za |
Отправлено: 30.06.2003, 21:19 |
|
Не зарегистрирован
|
Не подскажите альтернативу функции FileExists() (Можно через asm-вставку), а то файл раздувается с 19кб до 42 только при включении SysUtils.
Заранее Спасиба. |
|
Admin |
Отправлено: 30.06.2003, 22:24 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
В io.h есть такая функция access (см. Help)
CODE |
#include <stdio.h>
#include <io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
|
|
|
Георгий |
Отправлено: 30.06.2003, 22:48 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Za — тебе ник надо на экстримал поменять!
расскажи, как у тебя exe в 19 кб получился — я в BCB меньше 100kb не видел. или ты размер без включения всех библиотек указал?
проверить существование файла с известным полным именем, не используя sysutils, можно через функции для работы с файлами Win32API, которые вовсе не обязательно через asm вставки вызывать(хотя, если острых ощущений не хватает, то можно попробовать):
GetFileAttributes
CODE | DWORD FileAttrib;
FileAttrib=GetFileAttributes("c:\\boot.ini");
if (FileAttrib==DWORD(-1))
{
Application->MessageBox("file not exist","asd",MB_OK);
}
else
{
Application->MessageBox("file exist","asd",MB_OK);
}; |
CreateFile
CODE | HANDLE hFile;
hFile=CreateFile("c:\\boat.ini",0,0,0,OPEN_EXISTING,0,0);
if (hFile==INVALID_HANDLE_VALUE)
{
Application->MessageBox("file not exist","asd",MB_OK);
}
else
{
Application->MessageBox("file exist","asd",MB_OK);
};
CloseHandle(hFile); |
Наверное можно ещё какие-нибудь способы продумать... |
|
Za |
Отправлено: 30.06.2003, 23:57 |
|
Не зарегистрирован
|
Георгий, большое спасибо za варианты! Работает! А с размером действительно накладочка вышла — не 19кб, а 17кб. А библиотечки все наместе Windows.hpp и Messages.hpp. Пока больше не надо, да и че там — окно одно и свое а-ля dat-сохранение параметров (чтоб места поменьше занимало). Пробовал IniFiles.hpp приклеить так размер до 120кб раздувался! А za счет чего? Еще раз спасибо. |
|
|