С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 16

Createfile, readfile, writefile

18.03.2015, 23:05. Показов 4277. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Файл 4 создаётся,но данные из файла 1 не переносятся.Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
HANDLE myFile;
HANDLE myFile2;
DWORD buf;
char asd;
myFile = CreateFile(L"file4.txt",GENERIC_WRITE, 0, NULL, CREATE_NEW,FILE_ATTRIBUTE_NORMAL, 0);
if (myFile != INVALID_HANDLE_VALUE)
{ //Файл создан
myFile2 = CreateFile(L"file1.txt",GENERIC_READ|GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, 0);
ReadFile(myFile2,&asd, asd*sizeof(char),&buf,NULL);
 
WriteFile(myFile, &asd, asd*sizeof(char), &buf, NULL);
CloseHandle(myFile);
Отладчик выдаёт следующее:
Миниатюры
Createfile, readfile, writefile  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2015, 23:05
Ответы с готовыми решениями:

CreateFile, WriteFile
Подскажите работающий код программы на с++, которая создаёт файл с помощью CreateFile

CreateFile and ReadFile, WinAPI
всем доброго времени суток! открываю текстовый файл и вывожу содуржимое в консоль: char buf; DWORD nl; HANDLE hf =...

Функции CreateFile() и WriteFile()
Господа, помогите разобраться с функциями CreateFile() и WriteFile(). В следующем простом примере пытаюсь создать файл txt и записать...

7
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
19.03.2015, 08:29
А где проверка, что вторая CreateFile завершилась успешно ?
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 16
21.03.2015, 09:18  [ТС]
Проблема всё ещё актуальна.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
21.03.2015, 10:01
Цитата Сообщение от Убежденный Посмотреть сообщение
А где проверка
Вопрос тоже актуален. Вставьте проверки того, что возвращают
CreateFile, ReadFile и WriteFile, в случае ошибки вызывайте
GetLastError() и вбивайте код в Error Lookup или форматируйте
через FormatMessage. Будет текстовое описание ошибки.
0
 Аватар для rao
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
21.03.2015, 10:20
А какие данные в файле? ReadFile считывает один байт.
В смысле передается буфер из одного символа:
C
1
char asd;
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
21.03.2015, 10:21
rao, кстати, да !
В "asd" ведь мусор...
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 16
28.03.2015, 17:18  [ТС]
Появилась другая проблема....
Теперь файл создаётся,но копируются только 4 символа...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
case IDC_BTN_TEST2:
HANDLE myFile;
HANDLE myFile2;
DWORD m;
LPVOID lpMsgBuf;
 
myFile = CreateFile(L"file4.txt",GENERIC_WRITE, 0, NULL, CREATE_NEW,FILE_ATTRIBUTE_NORMAL, 0);
if (myFile != INVALID_HANDLE_VALUE)
{ //Файл создан
myFile2 = CreateFile(L"file1.txt",GENERIC_READ|GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, 0);
 if (myFile2 == INVALID_HANDLE_VALUE) {
        char Error = GetLastError();
         FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        dw,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf,
        0, NULL );
        return TRUE;
    }
ReadFile(myFile2,&lpMsgBuf,sizeof(myFile2),&m,NULL);
 
WriteFile(myFile, &lpMsgBuf,sizeof(myFile2),&m, NULL);
CloseHandle(myFile);
CloseHandle(myFile2);
const wchar_t *sr = L"Копирование file1 в file2 прошло успешно";
MessageBox(NULL,sr,L"Успех",MB_OK);
return TRUE;
 
}else
{ //Файл не создан
wchar_t *Error1 = L"Файл с таким названием уже существует";
MessageBoxW(NULL,Error1,L"Ошибка",MB_OK);
 
return TRUE;
}
0
 Аватар для rao
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
28.03.2015, 18:44
LazyWolf, разберись что такое указатели. Совсем не понимаешь что творишь.
Читай так:
C
1
2
3
    char cBuffer[100];
    ...
    ReadFile(myFile,cBuffer,sizeof(cBuffer),&m,NULL);
а пиши так:
C
1
2
3
    DWORD dwWritten = 0;
    ...
    WriteFile(myFile, cBuffer, m, &dwWritten, NULL);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2015, 18:44
Помогаю со студенческими работами здесь

ReadFile WriteFile на примере
день добрый есть проект типа напоминания задача сохранять данные в файл при добавлении и считывать их от туда при открытии программы...

WriteFile -> pipe -> ReadFile Несколько сообщений смешиваются в одно
Доброго времени суток! Решил создать консоль для вывода сообщений о работе основной программы. Консоль запускается при помощи...

Отправка строки байт PCI-e устройству с использованием CreateFile() и WriteFile()
Собственно имеется PCI-e плата, драйвер разработчика для нее и программа позволяющая просматривать память (BAR'ы) платы. Можно ли нормально...

Чтения результатов ввода со сканера RS-232(com-port) через ReadFile/CreateFile WinAPI
Доброго времени суток. Есть задача, считать информацию со сканера RS-232 (com-port). Как правильно это делать через ReadFile? ...

Функции win32 CreateFile WriteFile и ReadFile
В общем делаю небольшой проект. Необходимо считать данные из файла. Очевидно, что изначально в него необходимо эти данные записать. Так...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru