You've already forked lazarus-ccr
72 lines
2.2 KiB
Plaintext
72 lines
2.2 KiB
Plaintext
![]() |
unit DataUnit;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||
|
StdCtrls, ExtCtrls, Grids, OutPutUnit, Globals;
|
||
|
|
||
|
procedure GetFileData(VAR FName : string);
|
||
|
procedure Allocations;
|
||
|
procedure DeAllocations;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses LinPro;
|
||
|
|
||
|
procedure GetFileData(VAR FName : string);
|
||
|
|
||
|
var
|
||
|
F : TextFile;
|
||
|
i, j : integer;
|
||
|
|
||
|
begin
|
||
|
LinProFrm.OpenDialog1.DefaultExt := 'LPR';
|
||
|
LinProFrm.OpenDialog1.Filter := 'Linear Programming File (*.LPR)|*.LPR|All Files (*.*)|*.*';
|
||
|
LinProFrm.OpenDialog1.FilterIndex := 1;
|
||
|
if LinProFrm.OpenDialog1.Execute then
|
||
|
begin
|
||
|
FName := LinProFrm.OpenDialog1.FileName;
|
||
|
AssignFile(F,FName);
|
||
|
Reset(F);
|
||
|
readln(F,LinProFrm.NoVars);
|
||
|
readln(F,LinProFrm.NoMax);
|
||
|
readln(F,LinProFrm.NoMin);
|
||
|
readln(F,LinProFrm.NoEql);
|
||
|
readln(F,LinProFrm.MinMax);
|
||
|
LinProFrm.NoCoefs := LinProFrm.NoMax + LinProFrm.NoMin + LinProFrm.NoEql;
|
||
|
Alloc;
|
||
|
for i := 1 to LinProFrm.NoVars do readln(F,LinProFrm.Objective[i]);
|
||
|
for i := 1 to LinProFrm.NoMax do readln(F,LinProFrm.MaxConstraints[i]);
|
||
|
for i := 1 to LinProFrm.NoMin do readln(F,LinProFrm.MinConstraints[i]);
|
||
|
for i := 1 to LinProFrm.NoEql do readln(F,LinProFrm.EqlConstraints[i]);
|
||
|
for i := 1 to LinProFrm.NoCoefs do
|
||
|
for j := 1 to LinProFrm.NoVars do readln(F,LinProFrm.Coefficients[i,j]);
|
||
|
CloseFile(F);
|
||
|
end;
|
||
|
end;
|
||
|
//-------------------------------------------------------------------
|
||
|
|
||
|
procedure Allocations;
|
||
|
begin
|
||
|
SetLength(LinProFrm.Objective,LinProFrm.NoVars + 1);
|
||
|
SetLength(LinProFrm.MaxConstraints,LinProFrm.NoMax + 1);
|
||
|
SetLength(LinProFrm.MinConstraints,LinProFrm.NoMin + 1);
|
||
|
SetLength(LinProFrm.EqlConstraints,LinProFrm.NoEql+1);
|
||
|
SetLength(LinProFrm.Coefficients,LinProFrm.NoCoefs+1,LinProFrm.NoVars+1);
|
||
|
end;
|
||
|
//-------------------------------------------------------------------
|
||
|
|
||
|
procedure DeAllocations;
|
||
|
begin
|
||
|
// cleanup
|
||
|
LinProFrm.Coefficients := nil;
|
||
|
LinProFrm.EqlConstraints := nil;
|
||
|
LinProFrm.MinConstraints := nil;
|
||
|
LinProFrm.MaxConstraints := nil;
|
||
|
LinProFrm.Objective := nil;
|
||
|
end;
|
||
|
//-------------------------------------------------------------------
|
||
|
|
||
|
end.
|