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

Запись и чтение файла dat - C++

Восстановить пароль Регистрация
 
Mediaplay
0 / 0 / 0
Регистрация: 05.12.2009
Сообщений: 39
17.12.2012, 21:12     Запись и чтение файла dat #1
Данная программа ищет файлы с расширением *.txt и выводит их имена и даты создания, и создаёт каталог FIND и файл find.dat. Как сделать что бы информация об именах и датах создания файлов txt записывалась в find.dat и потом посмотреть этот список?

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include<iostream>
int main(int argc, char* argv[])
 
 
{
 
HANDLE hFile;
WIN32_FIND_DATA lpFile;
SYSTEMTIME lpSys;
int i=0,j=0;
 
 
SetCurrentDirectory("C:\\Users\\user\\Desktop\\file");
hFile=FindFirstFile(("*.txt*"),&lpFile);
if(hFile!=INVALID_HANDLE_VALUE)
{
if (lpFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
printf("directory\t");
i++;
}
else
{
printf("file\t\t"); 
j++;
}
  FileTimeToSystemTime(&lpFile.ftLastWriteTime, &lpSys);
printf("%s\t%d.%d.%d  %d:%d\n",lpFile.cFileName,lpSys.wDay,
      lpSys.wMonth,lpSys.wYear, lpSys.wHour, lpSys.wMinute);
  }
else
printf("no");
 
while(FindNextFile(hFile, &lpFile))
{
if (lpFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
printf("directory\t");
i++;
}
else
{
printf("file\t\t"); 
j++;
}
  FileTimeToSystemTime(&lpFile.ftLastWriteTime, &lpSys);
printf("%s\t\t%d.%d.%d  %d:%d\n",lpFile.cFileName,lpSys.wDay,
      lpSys.wMonth,lpSys.wYear, lpSys.wHour, lpSys.wMinute);
}
 
 
FindClose(hFile);
printf("count fo directories %d\t count of files %d\n",i,j);
system( "pause" );
scanf;
 
 CreateDirectory ("C:\\FIND", NULL);
 CreateFile("C:\\FIND\\find.dat",GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
return 0;
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 21:12     Запись и чтение файла dat
Посмотрите здесь:

Запись и чтение из файла C++
C++ Запись и чтение из файла
C++ запись\чтение из файла
Чтение/запись файла C++
Чтение и запись из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Asdprom
 Аватар для Asdprom
22 / 21 / 1
Регистрация: 19.12.2011
Сообщений: 75
17.12.2012, 21:22     Запись и чтение файла dat #2
WriteFile
C++
1
2
3
4
5
6
7
BOOL WriteFile(
  HANDLE hFile,                    // дескриптор файла
  LPCVOID lpBuffer,                // буфер данных
  DWORD nNumberOfBytesToWrite,     // число байтов для записи
  LPDWORD lpNumberOfBytesWritten,  // число записанных байтов
  LPOVERLAPPED lpOverlapped        // асинхронный буфер
);
ReadFile
C++
1
2
3
4
5
6
7
BOOL ReadFile(
  HANDLE hFile,                // дескриптор файла
  LPVOID lpBuffer,             // буфер данных
  DWORD nNumberOfBytesToRead,  // число байтов для чтения
  LPDWORD lpNumberOfBytesRead, // число прочитанных байтов
  LPOVERLAPPED lpOverlapped    // асинхронный буфер
);
Mediaplay
0 / 0 / 0
Регистрация: 05.12.2009
Сообщений: 39
18.12.2012, 15:42  [ТС]     Запись и чтение файла dat #3
И так не получается
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
 CreateDirectory ("C:\\FIND", NULL);
 
system( "pause" );
hFile =CreateFile("C:\\FIND\\find.dat",GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD nb;  
(hFile,0,NULL,FILE_END);
 
{
WriteFile(hFile,&j,sizeof(int),&nb,NULL);
}
CloseHandle(hFile);
hFile = CreateFile("C:\\FIND\\find.dat",GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
  
int m;
ReadFile(hFile,&m,sizeof(int),&nb,NULL);
while (nb!=0)
{
cout << m<< endl;
ReadFile(hFile,&m,sizeof(int),&nb,NULL);
}
CloseHandle(hFile);
 system( "pause" );
 return 0;
 
system( "pause" );
Добавлено через 15 часов 12 минут
ни кто не делал запись и чтение из файла?
Asdprom
 Аватар для Asdprom
22 / 21 / 1
Регистрация: 19.12.2011
Сообщений: 75
18.12.2012, 16:48     Запись и чтение файла dat #4
А что именно не получается? Во-первых файл можно открывать в режиме GENERIC_READ|GENERIC_WRITE.
Во-вторых :

Цитата Сообщение от Mediaplay Посмотреть сообщение
int m; ReadFile(hFile,&m,sizeof(int),&nb,NULL);
Вы не инициализировали переменную, поэтому чтение не пройдет.

В-третьих:
Цитата Сообщение от Mediaplay Посмотреть сообщение
DWORD nb; (hFile,0,NULL,FILE_END); { WriteFile(hFile,&j,sizeof(int),&nb,NULL); }
это не должно работать в принципе. Если бы Вы внимательно прочитали то, что написано по ссылкам, то таких ошибок бы не допускали.

Добавлено через 1 минуту
Цитата Сообщение от Asdprom Посмотреть сообщение
BOOL ReadFile( HANDLE hFile, // дескриптор файла LPVOID lpBuffer, // буфер данных DWORD nNumberOfBytesToRead, // число байтов для чтения LPDWORD lpNumberOfBytesRead, // число прочитанных байтов LPOVERLAPPED lpOverlapped // асинхронный буфер );
тут же четко написано, чем является m
Mediaplay
0 / 0 / 0
Регистрация: 05.12.2009
Сообщений: 39
18.12.2012, 20:47  [ТС]     Запись и чтение файла dat #5
Я нашел есчё один способ записи но я не пойму как сделать та что бы просто весь текст из консоле скопировался в файл
Yandex
Объявления
18.12.2012, 20:47     Запись и чтение файла dat
Ответ Создать тему
Опции темы

Текущее время: 11:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru