Качала, В. В. Принципы создания пакета прикладных графических программ на языке Турбо-Паскаль (на примере задач геофизики) / под ред. А. А. Намгаладзе. – Апатиты : ПГИ КНЦ РАН, 1993. – 99 с.
{ Выбор драйвера лля размещения ТРА > procedure VDriveTPA (var dvm : string; sizeARR : longint); var ch : char; ndisk : word; begin ndisk 10; while (DiskFree (ndisk') < sizeARR) AND (ndisk; 2) do Dec (ndisk); if ndisk > 2 then dvm char (ndisk+64) else begin ts ’Надиске "С" недостаточноместа' + ’дляразмещениямассива'; FastWrlte (ts, 2, XNCentr (ts), 15+4*16+81ink); Delay (3000); Halt; end end; { VDriveTPA > '■.............................. > begin sizeARR Longint (nax) * nay * isz); if ExtMemAvail sizeARR then TPEArray.MAKEA "TPA, nax, nay, isz) else EMSAvailable FALSE; if EMSAvailable then begin VDriveTPA (dvm, Lcnglnt(nax)*nav*isz); TPVArray.MAKEA (TPA.nax, nay, isz, avm+':\TPA’, 1000); end; “if EMSAvailable then TPEarray.DISPOSEA (TPA) else TPVarray.DISPOSEA (TPA, TRUE); end. Логикаработытакойпрограммыследующая: а) проверяетсяналичиеEMS (EMSAvailable - TRUE ?) и достаточенлиегоразмердляразмещенияБМ (функция ExtMemAvail модуляТРЕХТМЕМ); б) еслиответнапервыйпунктотрицательный, топрове ряетсядостаточностьразмерасвободнойпамятинадисках (функцияDiskFree модуляDcs), начинаяснекоторогозаведомо большогономера, напримерJ, идалееперебираютсявседиски вплотьдоС. Первыйдиск, накоторомокажетсядостаточно местаибудетразмещатьсяБМ (процедураМакеА); в) еслиияадискеСнедостаточноместа, тозадается соответствующеесообщениеипрограммааварийнозавершается. Когдазызакончилиработусбольшиммассивомнезабудь теегоуничтожитьпроцедуройOisposea, иначенасоответству ющемдискепоявятсязасоряющиеегопотерянныефайлы і
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz