![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_opex |
|
|||
Unregistered |
как копировать файл с любым разрешением (на Си )
текстовые файл копируются но в конце появляется символ "я" а допустим ехе не в какую
зарание благодарен |
|||
|
||||
Opex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 2.3.2004 Где: Архангельск Росси я Репутация: нет Всего: нет |
может еть какаянибуть библиотечная функция
|
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Так не пойдёт. Ты ищешь в файле знак EOF (их в .ехе куча может быть ![]() Пользуйся read() write(), чтобы копировать "вслепую". Обязательно посмотри мануалы к этим функциям. Пример (без опросов на существованиe файлов):
PS: Bопросик, кто нить знает, как подцветку кода в сообщениях включать? Добавлено @ 02:16 read() write() НАМНОГО быстрее. Величину buf регулируй по вкусу ![]() Это сообщение отредактировал(а) sergej.z - 25.3.2004, 02:16 |
||||
|
|||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
Если делаешь под Windows, то лучше используй CopyFile.
|
|||
|
||||
Opex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 2.3.2004 Где: Архангельск Росси я Репутация: нет Всего: нет |
sergej.z большое спасибо но я не понимаю зачем в функции main в списке формальных пораметров сидит int argc или я чтото не догнал.
NiJazz а можно по подробнее про CopyFile. |
|||
|
||||
OlegsDP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.2.2004 Репутация: нет Всего: 1 |
The CopyFile function copies an existing file to a new file.
BOOL CopyFile( LPCTSTR lpExistingFileName, // pointer to name of an existing file LPCTSTR lpNewFileName, // pointer to filename to copy to BOOL bFailIfExists // flag for operation if file exists ); Parameters lpExistingFileName Points to a null-terminated string that specifies the name of an existing file. lpNewFileName Points to a null-terminated string that specifies the name of the new file. bFailIfExists Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds. Return Values If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Remarks Security attributes for the existing file are not copied to the new file. File attributes (FILE_ATTRIBUTE_*) for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to CopyFile will also have the FILE_ATTRIBUTE_READONLY file attribute. For further information on file attributes, see CreateFile. |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
lpExistingFileName - Имя текущего файла, который хочешь копировать. Например, C:\\myDir\\MyFile.txt lpNewFileName - куда хочешь его скопировать. Например, C:\\NewDir\\MyNewFile.txt. Можно просто C:\\NewDir\\, если не хочешь менять имени. bFailIfExists - опеределяет, надо ли заменять файл, если такой существует. FALSE - перезаписать. Не забудь сделать #include <windows.h> |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Если вызвать программу с аргументами например: my.exe infile.txt outfile.txt то argc осведомит в main о количестве переданных аргументов, а argv будет содержать эти аргументы. Абсолютно верно, что в моём примере argc не используется. Этот пример был написан на скорую руку(даже fclose() не был вызван). Вообще то надо было бы проверить, сколько аргументов было передано в нашу программу.
PS: CopyFile внутренне работает так же, но с этой функцией у меня две проблемы.
Это сообщение отредактировал(а) sergej.z - 25.3.2004, 18:47 |
||||
|
|||||
Guest |
|
|||
Unregistered |
всем большое спамибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |