Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

последний элемент массива   Найти похожие ветки 

 
owa   (2008-01-31 23:45) [0]

Подскажите как узнанать величину массива?
В смысле.. как определить что текушая запись массива является последней?
:-[


 
Virgo_Style ©   (2008-01-31 23:54) [1]

High() ?


 
Owa   (2008-02-01 00:11) [2]

>Virgo_Style ©   (31.01.08 23:54) [1]
>High() ?

ой.. точно....   :-[

спасибо)


 
Owa   (2008-02-01 00:29) [3]

Эм... а как узнать последний заполненый элемент массива?

Конкретнее...


type
 Base = record
   Name : string[90];
  count : string[90];
   janr : string[90];
   user : string[90];
 end;

//запись
var
 BaseItem : array[1..50] of Base;
 F : file of Base;
 i,c : integer;
begin

For c := 1 to StringGrid1.ColCount-1 do
For i := 1 to StringGrid1.RowCount-1 do
   begin
    BaseItem[i].Name := StringGrid1.Cells[0,i];
    BaseItem[i].count := StringGrid1.Cells[1,i];
    BaseItem[i].janr := StringGrid1.Cells[2,i];
    BaseItem[i].user := StringGrid1.Cells[3,i];
   end;
exit;

AssignFile(F,"f:\members.dat");
...

//чтение
var
 BaseItem : array[1..50] of Base;
 F : file of Base;
begin

AssignFile(F,"f:\members.dat");
Reset(F);
try
 while not Eof(F) do
  for i := 1 to 50 do
   begin
     Read(F, BaseItem[i]);
     if i = High(BaseItem) then exit;
     StringGrid1.Cells[0,i] := BaseItem[i].Name;
     StringGrid1.Cells[1,i] := BaseItem[i].count;
     StringGrid1.Cells[2,i] := BaseItem[i].janr;
     StringGrid1.Cells[3,i] := BaseItem[i].user;
   end;


Читаю массив из 50 элементов, а если в файле записано было не 50 а например 100 элементов то таблица получится не полной. Так вот, как узнать верхнюю границу массива в который идет считывание полей?
Как в записи данных из таблицы создавать массив для записи, указав верхнюю границу массива - количеством строк объекта StringGrid ?

Я просто осваиваю тип Record и массивы, но расплогаю совсем не полной о них информацией, а то что я нашел в гуле мне ничем не помогло.
Подскажите как реализовать мою идею, или дайте пожалуйста ссылочку на сайтик где можно об этом поплотнее почитать.
Спасибо )


 
Amoeba ©   (2008-02-01 00:45) [4]

Раздели размер файла на размер записи.


 
Lip ©   (2008-02-01 10:28) [5]

while not eof


 
Dennis I. Komarov ©   (2008-02-01 10:44) [6]

> while not Eof(F) do
>  for i := 1 to 50 do

Это бред...
Убирай for и статический массив на динамический


 
Anatoly Podgoretsky ©   (2008-02-01 11:11) [7]


> Читаю массив из 50 элементов, а если в файле записано было
> не 50 а например 100 элементов то таблица получится не полной.
>  Так вот, как узнать верхнюю границу массива в который идет
> считывание полей?

Потому что бред записан, каждые следующие 50 записей (и дай бог, что бы было кратно 50), затируют первые 50.



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
8-1174366789
Nikss
2007-03-20 07:59
2008.02.24
OpenGL


11-1184171451
MTsv DN
2007-07-11 20:30
2008.02.24
Новости http://www.kolnmck.ru/


6-1180940537
DVM
2007-06-04 11:02
2008.02.24
Винет поток на функции Socket().


15-1201259906
Lip
2008-01-25 14:18
2008.02.24
форум умер потому что delphi умерла?


2-1201813420
flaxe
2008-02-01 00:03
2008.02.24
Динамическое создание объектов