Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна функция загрузки в массив 
:(
    Опции темы
Elfet
  Дата 9.8.2004, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Есль файл например такой:
0|0|0|0|0|
0|1.2|2|1.2|0|
0|0|0|0|0|

И его нада загрузить в массив:
double phm[700][700];

И узнать количество строк и столбцов.



Вот мой ужасный вариант , который не работает:
Код
void LoadRawFile(char *fname)
{
MAP_SIZE=0;
FILE *in;
FILE *out;
FILE *in2;
if((in=fopen(fname, "rt"))==NULL)
{
 MessageBox(NULL, "Can't Find The Height Map!", "Error 1", MB_OK);
 return;
}
char getch[10000];
int lx=0, lz=0;
while(!feof(in))
{
 int getline;
 fscanf(in, "%s\n", &getch);
 if((out=fopen("readline.openimap", "w"))==NULL){MessageBox(NULL, "Error 2", "Error 2", MB_OK);return;}
 fprintf(out, getch);
 fclose(out);
 if((in2=fopen("readline.openimap", "r"))==NULL){MessageBox(NULL, "Error 3", "Error 3", MB_OK);return;}
 while(!feof(in2))
 {
 fscanf(in2, "%d|.", &getline);
 pHeightMap[lx][lz]=getline;
 lz++;
 MAP_SIZE_Z+=lz;
 }
 fclose(in2);
 lx++;
 MAP_SIZE_X+=lx;
}
fclose(in);  f->Caption=pHeightMap[50][50];
}


Прошу помощи sample.gif


--------------------
PM MAIL WWW Skype   Вверх
chipset
Дата 9.8.2004, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Переработать структуру файла можно?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Elfet
Дата 9.8.2004, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



угу, можно


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 9.8.2004, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Спасибо, Chipsetу :
Изменил структуру файла на
MAP_SIZE_X|MAP_SIZE_Z|213|345|234|23|.....
Код

void Tf::LoadRawFile(char *fname)
{
MAP_SIZE_X=MAP_SIZE_Z=0;
FILE *in;
if((in=fopen(fname, "r"))==NULL)
{
 MessageBox(NULL, "Can't Find The Height Map!", "Error", MB_OK);
 return;
}
int geth;
int lx=0, lz=0;
fscanf(in, "%d|%d|", &MAP_SIZE_X, &MAP_SIZE_Z);
while(!feof(in))
{
fscanf(in, "%d|", &geth);
pHeightMap[lx][lz]=geth;
lz++;
if(lz==MAP_SIZE_Z)
 {
  lz=0;
  lx++;
 }
}
fclose(in);
}


smile.gif


--------------------
PM MAIL WWW Skype   Вверх
Олег М
Дата 9.8.2004, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



А если так (грубо)
Код

char szBuf[256],*ptr;
int i(0),j(0);
ptr=szBuf;
while (!feof(in2))
{
char ch=fgetc(in2);
switch (ch)
{
case '|': *ptr=0; ptr=szBuf; phm[i++][j]=atof(szBuf); break;
case '\n': i=0; ++j; break;
default: *(ptr++)=ch;
}
}

PM MAIL ICQ   Вверх
Elfet
Дата 9.8.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



моно и так, ещё варианты? smile.gif


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.