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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
#1

Чтение из файла - C++

16.02.2009, 00:39. Просмотров 1627. Ответов 2
Метки нет (Все метки)

Добрый день, нужна помощь!
Нужно прочитать данные из файла. Как я понимаю они записаны структурой, ну или хотя бы в структуру их будет удобнее читать.

Вот инфа по файлу:
This file holds all the base-level terrain, and doesn't look too pretty without the static data.

The map is stored as a 768x512 matrix of blocks. A block is basically a 8x8 matrix of cells. Each individual cell contains data about the tile for that cell, and the cell's altitude. Therefore, the entire map is 6144x4096 individual cells in size.

Blocks are loaded top-to-bottom then left-to-right. Cells are loaded from blocks left-to-right then top-to-bottom.

The formula used to locate an individual CELL in the file is a little complex, since you have to work out what block it is in...

If you refer to the map in blocks, then there's 512 blocks down, by 768 blocks across.

XBlock = Int(XPos/8)
YBlock = Int(YPos/8)
Block Number = (XBlock * 512) + YBlock
MAP0 (37,748,736 bytes)

393,216 [Block]s sequentially, Block = 196 bytes
DWORD header, unknown content
64 Cells
Cell (3 bytes)
0 1 2
Color Alt

UWORD cell graphic (which can be looked up in RADARCOL).
BYTE Altitude (-128..127 units above/below sea level).
Смастерил я вот такую программку, но это сейчас версия "то, что он нее осталось после разных проб"
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
#include <windows.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
#pragma pack (push, 1)
 
typedef signed char SBYTE;
 
struct cells
{
         WORD TileID;
         CHAR Z;
};
 
struct block
{
    int header;
    cells c[64];
};
 
 
int main()
{
    block b;
    int header;
         WORD TileID;
         CHAR Z;
    ifstream file("D:\\Ultima Online Mondain Legacy\\map0.mul");
    while (!file.eof())
    {
                //file.read((signed char*)&b, sizeof(block));
        file >> header;
        file >> TileID;
        file >> Z;
        cout<<(int)TileID;
    }
    //cout<<sizeof(block);
    return 0;
}
В общем вроде все как верно?! Структура Целлсов = 3байта, Блока = 196байт.
Как не читаю структурно или последовательно результат один.
TileID выдает 52000 без сотен и десятков а Z выдает -52
Как нужно правильно прочесть файл по блокам?%)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2009, 00:39     Чтение из файла
Посмотрите здесь:

Чтение из файла - C++
Суть в том, что вместо того, чтобы считать всё из файла, программа считывает только последнее слово, в чем ошибка? вот код! ...

Чтение из файла - C++
задание: помогите с 3 заданием!!! как можно сделать что бы программа считывала файл auto.txt и распределяла данные по классам, ...

чтение из файла - C++
нужно скопировать файл как с начало до конца, так и с конца в начало (то есть в обратном порядке). с первой частью никаких проблем не...

Чтение файла - C++
Как в си прочитать файл побайтово?

Чтение из файла - C++
Есть задание: написать программу,которая считывыает числа из файла, написанные в нем через пробел. Числа кодируются и записываются в новый...

Чтение из файла - C++
У.у..у.. чёрт побери...что - то я запарился на эти сишные функции мануалы читать.....всё забыл... Может кто напомнит строчку кода, как...

чтение из файла - C++
Входной файл имеет такой вид 13 aaabaaabcckks 5 aabcc Как его прочитать, используя эти 13 и 5 (длину строки)? Помогите,...

Чтение с файла - C++
Всем добрый день. Вот хотелось бы научиться считывать с файла текст и цифры в разные переменные. Пример: (в файле записано) Привет...

Чтение из файла - C++
Люди, помогите, пжлст, новичку! Задача следующая есть файл abc.txt с наdписью abc10.12. Нужно сымитировать нажатие клавиш для цифр и точек...

Чтение из файла - C++
Добрый день. Есть следующая программа. Она вначале записывает массив объектов в файл, а затем должна считать его. Когда я применяю полный...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Шерсть-На-Носу
40 / 40 / 1
Регистрация: 30.01.2009
Сообщений: 168
16.02.2009, 08:49     Чтение из файла #2
Вероятно, для начала нужно открыть файл как бинарный...
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
16.02.2009, 18:25  [ТС]     Чтение из файла #3
Оно так и есть... Все спасибо! Все работает!
Yandex
Объявления
16.02.2009, 18:25     Чтение из файла
Ответ Создать тему
Опции темы

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