Вниз
Скачать: CL | DM;

Непонятные тормоза при чтении из файла   Найти похожие ветки 

 
lee_mour   (2006-05-06 15:03) [0]

Есть такой код:


function GetDbAttr(Pos: Integer; Value: Integer): Variant;
var Tmp: TOrganization;
begin
 Result := "##error## "+inttostr(pos);
 frmDesktop.lblAuthType.Caption := Inttostr(filepos(database));
 if ((Pos < 0) or (Pos > FileSize(database))) then Exit;
 Seek(Database, Pos);
 Read(Database, Tmp);
 if (Value=DA_NAME) then Result := Tmp.Name;
end;


так вот, если делать GetDbAttr(1, DA_NAME) то всё чики-пуки, а если GetDbAttr(0, DA_NAME) - прога виснет. В чём секрет?


 
han_malign ©   (2006-05-06 15:26) [1]


> В чём секрет?

- может в содержимом файла в нулевой позиции?
Или в использовании динамических типов в TOrganization?

А скорее всего "ошибка в 17-й строке"(c)app


 
lee_mour   (2006-05-06 15:33) [2]

Я этот файл взял со старой версии, как был так и остался, и методика обработки не изменилась. А теперь мне надо посчитать, сколько записей в файле имеют атрибут "Холдинг" (IsHolding=True), и при проходе через эту позицию он виснет.

Структура вот:


type

 TOrganization=record

   Name           : String[100];

   AdressIndex    : String[8];
   AdressCity     : String[50];
   AdressStreet   : String[100];
   AdressDom      : String[4];
   AdressOffice   : String[4];
   OfficePhoneC   : String[6];
   OfficePhoneN   : String[8];

   RukovodName    : String[80];
   RukovodPhoneC  : String[6];
   RukovodPhoneN  : String[8];
   RukovodPhoneE  : String[4];
   ExtPhones      : String[110];

   Vajnost        : (vlLow, vlMedium, vlHigh, vlNone);
   VajnostFlag    : (vfRed, vfGreen, vfBlue, vfNone);
   Prozvon        : (psProzvoneno, psNeprozvoneno, psPM);
   Vozrast        : (tsOld, tsNew);
   Obrabotka      : (osObrabotano, osNeobrabotano);
   Prodagi        : (pcLow, pcMedium, pcHigh, pcNone);
   SpecFlag       : (sfRed, sfGreen, sfBlue, sfNone);

   ExtInfoFile    : String[20];    // ext-info filename
   Category       : String[80];
   Region         : String[80];
   IsInHolding    : Boolean;
   HoldingName    : String[100];

   WWW            : String[80];
   Email          : String[80];
 end;


 
Jeer ©   (2006-05-06 15:40) [3]

Извращенцы.


 
lee_mour   (2006-05-06 15:46) [4]

Jeer, да что ты говоришь!


 
han_malign ©   (2006-05-06 16:26) [5]

TOrganization= packed record
- не поможет ли?


> (vlLow, vlMedium, vlHigh, vlNone)

- а вот размер перечислений, от версии к версии и от опций к опциям, я даже предсказать не возьмусь...


 
lee_mour   (2006-05-07 11:07) [6]

TOrganization= packed record
хм... а он строчки с кириллицей поганитю...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1148245086
Adolf
2006-05-22 00:58
2006.06.11
Срочно нужна помощь!


2-1148469253
Konnor
2006-05-24 15:14
2006.06.11
Инет


2-1148297951
Николай Владимирович
2006-05-22 15:39
2006.06.11
=> Странная штука с TreeView, не проходи мимо


15-1147970494
Empleado
2006-05-18 20:41
2006.06.11
< удалено модератором >


2-1148035612
Elen
2006-05-19 14:46
2006.06.11
Переопределение процедур меню другой программы




   Наверх