Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
#1

Как копировать не копируя? - C++

20.05.2010, 10:42. Просмотров 487. Ответов 6
Метки нет (Все метки)

Здавствуйте, нужно написать программу которая копирует файлы... Проблема же заключается в том, что стандартные функции копирования(такие как CopyFile) использовать нельзя... То есть необходимо открыть файл считать все из него и записать в другой... Если бы дело касалось только текстовых файлов, можно было бы ограничиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
ofstream NEWFILE;
FILE *fp;
char bufer[2]; 
fp=fopen(FileName,"r");
if(fp==NULL) 
   {MessageBox::Show("Файл не найден","Ошибка"); return;}                       
NEWFILE.open(NewFileName);
   if(NEWFILE==NULL) 
   {MessageBox::Show("Невозможно создать файл","Ошибка"); return;}
while(!feof(fp))
   {fgets(bufer,2,fp);
   NEWFILE<<bufer;}
но программа должна копировать не только текстовые файлы, а вобще все подряд... Подскажите, пожалуйста какими функциями можно воспольоваться чтобы выполнить задачу???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2010, 10:42     Как копировать не копируя?
Посмотрите здесь:

<fstream> как копировать файлы? - C++
Какой функцией можно скопировать нужный файл?

Как правильно копировать и добавлять вектора? - C++
Есть вектора vect1 и vect2, содержащие, допустим, значения double: using namespace std; vector&lt;double&gt; vect1, vect2;Как...

Как из переменной копировать цифры посимвольно в массив - C++
Например: есть переменная int х=1112; мне нужно эту переменную разбить по цифрах. и каждую цифру скопировать в в масив. a=1; a=1; ...

как создать программу которая будет себя копировать? - C++
//????????????

Как лучше копировать память, обмениваться указателями и т.д. при работе с кучей динамических библиотек (DLL) ? - C++
Привет! Вот есть много DLL-к, каждая работает со своей внутренней динамической памятью, а так же есть необходимость работать с объектами...

C++ структуры. Копировать - C++
void zadanie12() { struct Univer{ char *fam; char *kaf; char *dol; double zar;}; Univer...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
20.05.2010, 11:27     Как копировать не копируя? #2
WinAPI функции CreateFile, ReadFile, WriteFile. И не забывай про CloseHandle
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
20.05.2010, 11:30     Как копировать не копируя? #3
открыть в бинарном виде (оба - источник и приемник) и перелить всю инфу.
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
20.05.2010, 11:34  [ТС]     Как копировать не копируя? #4
Нашел пример в инете, разобрался... Если кому пригодится:
C++
1
2
3
4
5
6
7
8
9
10
11
FILE *in,*out;
char ch;
if ((in = fopen(StrTo4ar(textBox1->Text), "rb")) == NULL)
   {MessageBox::Show("Файл не найден","Ошибка"); return;}   
if ((out = fopen(StrTo4ar(Name), "wb"))  == NULL)
   {MessageBox::Show("Невозможно создать файл","Ошибка"); return;}  
while (!feof(in))
   {ch=fgetc(in);  
   fputc(ch, out);}
fclose(in);
fclose(out);
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
20.05.2010, 13:35     Как копировать не копируя? #5
C++
1
system("copy source_path /b destination_path /b");
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.05.2010, 09:23     Как копировать не копируя? #6
C
1
2
3
while (!feof(in))
   {ch=fgetc(in);  
   fputc(ch, out);}
Очень тормозной способ надо сказать - копировать под одному символу.
Ищи пример где копируется с использованием буфера
и с помощью функций fread(), fwrite()

А еще лучше - open(), read(), write(), close()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2010, 09:24     Как копировать не копируя?
Еще ссылки по теме:

Копировать в обратном порядке - C++
Необходимо скопировать одну строку в другую в обратном порядке.У меня даже не получается просто скопировать.Подскажите что не так? ...

Копировать, перенести, удалить файлы в C++ - C++
Здравствуйте ребята, я новичок в С++, и мне нужен ваш совет, как профессиональных программистов. Я пишу консольную программу, которая на...

Копировать содержимое вектора в другой - C++
Дан вектор из строк: vector &lt;string&gt; text_mas; В каждой строке хранятся слова (через пробел или несколько пробелов). Нужно копировать...

Копировать байты из массива char в int - C++
Добрый день Какими стандартными функциями это можно реализовать? Например, я получаю ответ с сервера при помощи функции recv знаю, что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.05.2010, 09:24     Как копировать не копируя? #7
C++
1
system("copy source_path /b destination_path /b");
Скорее все-таки system( "copy /b source_file dest_file" );
Но в любом случае это не портабельно и будет работать только под Windows
Yandex
Объявления
21.05.2010, 09:24     Как копировать не копируя?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru