megamozg13
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору library arrays; uses ShareMem,Windows,Messages,SysUtils,Controls,ShellApi,Classes; var ar_kolvo: Integer; ar_indx: array[1..500] of PChar; ar_data: array[1..500] of PChar; //\\ ОЧИСТКА МАССИВОВ /\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ procedure ArrayClear(Wnd: HWnd; var_index,var_data: PChar); stdcall; var i: Integer; begin for i:=0 to ar_kolvo do begin ar_indx[i]:=nil; ar_data[i]:=nil; end; ar_kolvo:=0; end; exports ArrayClear; //\\ СОХРАНЕНИЕ /\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ procedure ArraySet(Wnd: HWnd; var_index,var_data: PChar); stdcall; var ar_tek, i: Integer; begin // попытка найти номер по порядку ar_tek:=0; if ar_kolvo>0 then for i:=0 to ar_kolvo do if StrComp(ar_indx[i],var_index)=0 then ar_tek:=i; // выделение памяти и наращивание счетчика кол-ва элементов if ar_tek=0 then begin ar_kolvo:=ar_kolvo+1; ar_tek:=ar_kolvo; GetMem(ar_indx[ar_tek],Length(var_index)+1); GetMem(ar_data[ar_tek],Length(var_data)+1); end; // сохранение StrCopy(ar_indx[ar_tek], var_index); StrCopy(ar_data[ar_tek], var_data); end; exports ArraySet; //\\ СЧИТЫВАНИЕ /\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ procedure ArrayGet(Wnd: HWnd; var_index,var_data: PChar); stdcall; var ar_tek, i: Integer; begin // попытка найти номер по порядку ar_tek:=0; if ar_kolvo>0 then for i:=0 to ar_kolvo do if StrComp(ar_indx[i],var_index)=0 then ar_tek:=i; // считывание if ar_tek<>0 then begin GetMem(var_data,Length(ar_data[ar_tek])+1); StrCopy(var_data,ar_data[ar_tek]); end; end; exports ArrayGet; //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ begin end. | Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 14:23 22-04-2008 | Исправлено: megamozg13, 14:26 22-04-2008 |
|