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

чтение определенного элемента массива из файла - C++

Восстановить пароль Регистрация
 
Lan_Morehell
Сообщений: n/a
02.11.2011, 12:53     чтение определенного элемента массива из файла #1
добрый день!

суть такова - есть массив целых, который я записываю в файл. выглядит это так:

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
int Mass[Msize];           //собственно массив
 
int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
{
 
//--------------- заполняем массив
        int i;
        srand(time(NULL)); 
        for (i = 0; i < Msize; i++)
        {
                Mass[i]= rand()% 30;
        }
 
//----- записываем в файл
 
DWORD ByteWrite;
DWORD sizemass = sizeof(Mass);
 
HANDLE hFW = CreateFile("C:\\test2.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
 
WriteFile(hFW,Mass,sizemass,&ByteWrite,NULL);
 
CloseHandle(hFW);
все работает, в файл пишется, получается набор шестнадцатеричных чисел.. все по заданию, выглядит как:
05 00 00 00 04 00 00 00 11 00 00 00 18 00 00 00

а вот как быть дальше - ума не приложу. Мне надо считать из файла обратно произвольный элемент массива (скажем, третий) и вывести его на экран, причем по файлу нужно перемещаться с помощью SetFilePointer.

У меня получается примерно следующая заготовка:

C++
1
2
3
4
5
6
7
8
9
10
DWORD ByteRead;
 
HANDLE hFR = CreateFile("L:\\test.txt",GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,NULL);
 
char *element = new char[5];
 
SetFilePointer(hFR, 4, NULL, FILE_BEGIN);
 
ReadFile(hFR,element,sizeof(int),&ByteRead,NULL);
Но это явно неправильно - я ума не приложу, как сделать:
1. как передать функции SetАilePointer правильное смещение, чтобы считывать именно нужный элемент.
2. Правильно ли я его считываю в Char, и правильный ли у него размер, если нет - как понять сколько считывать, чтобы был считан только один элемент
3. Надо ли будет потом преобразовывать считанное в int и как

Подскажите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2011, 12:53     чтение определенного элемента массива из файла
Посмотрите здесь:

Чтение определенного количества символов из файла C++
C++ Чтение массива из файла
C++ Чтение из файла массива
Чтение массива из файла C++
Вывод определенного элемента массива из массива символов C++
Чтение массива из файла C++
C++ Сортировка массива до и после определенного элемента
Чтение массива из файла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
02.11.2011, 12:57     чтение определенного элемента массива из файла #2
Цитата Сообщение от Lan_Morehell Посмотреть сообщение
SetFilePointer(hFR, 4, NULL, FILE_BEGIN);
Получается 4 байта, а надо №элемента*sizeof(int)
Цитата Сообщение от Lan_Morehell Посмотреть сообщение
Правильно ли я его считываю в Char
А смысл, если нужен то int?
Lan_Morehell
Сообщений: n/a
02.11.2011, 13:41     чтение определенного элемента массива из файла #3
И правда, все заработало. Спасибо большое!
Yandex
Объявления
02.11.2011, 13:41     чтение определенного элемента массива из файла
Ответ Создать тему
Опции темы

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