Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Загрузка массива из файла


Автор: Toland2 2.11.2011, 17:49
Уважаемые программисты, подскажите пожалуйста как загрузить содержимое файла в двумерный массив.

Вот сам txt Файл:
11111111111111111111
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000020000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
10000000000000000001
11111111111111111111

Пока получилось только вот это:
Код

FILE *f;
Char massiv[15][20];
 if(f=fopen("file.txt","r"))
 {
   for(int y=0;y<15;y++)
      {
         for(int x=0;x<20;x++)
             {

              }
        }
   }

Автор: Данкинг 2.11.2011, 18:43
Во-первых, почему двумерный, если в примере только один столбец? Во-вторых, в чём именно вопрос?

Автор: Toland2 2.11.2011, 18:51
Нужно загрузить цифры из файла в массив так, что бы каждая цифра была в своем элементе массива

Автор: Данкинг 2.11.2011, 19:00
Не особо понял, но грузи в StringList и проходи его построчно-посимвольно.

Автор: Toland2 2.11.2011, 19:04
Спасибо. Я именно так сейчас и пытаюсь))

Автор: BenGan 2.11.2011, 21:42
А я очень люблю вот такую конструкцию:

Описывем сколь угодно сложную структуру данных
Цитата

typedef struct DBFHEAD4 {
   unsigned char Id;           /* 1 Битовый идентификатор (03)*/
   unsigned char date[3];      /* 3 Последнее обновление */
   __int32 reccount; /* 4 Количество записей*/
   __int16  headlengt;    /* 2 Длинна от начала до данных +1*/
   __int16  reclengt;     /* 2 Длинна одной записи */
   unsigned char tranzact;     /* 1 Задержка по транзакции 1/0 */
   unsigned char reserv[19];   /* 19  резерв  (итого 32 байта )*/
   } DBFHEAD4;


Создаем структуру Dh4 по шаблону DBFHEAD4 (резервируем память).
Цитата

DBFHEAD4 Dh4;


Читаем от начала файла разом всю структуру, какая-бы сложная она не была.
Цитата

fseek(fpbase, 0L, SEEK_SET);
fread(&Dh4, sizeof(DBFHEAD4), 1, fpbase);


Для повторяющихся записей можно организовать массив структур и читать их в цикле. Я так работал с DBF форматом. 

Цитата

Нужно загрузить цифры из файла в массив так, что бы каждая цифра была в своем элементе массива
 

Каждая переменная автоматически попадает на свое место. Если у Вас размер массива постоянен - достаточно один раз  описать его и один раз загрузить. И никаких циклов.



Автор: Toland2 7.11.2011, 17:34
Большое спасибо, BenGan. Очень полезная вещь!

Автор: borisbn 7.11.2011, 18:35
Код

FILE *f;
Char massiv[15][20];
 if(f=fopen("file.txt","r"))
 {
   for(int y=0;y<15;y++)
      {
         for(int x=0;x<20;x++)
             {
                   fscanf( f, "%c", &massiv[ y ][ x ] );
              }
        }
   }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)