Files
lazarus-ccr/applications/lazstats/source_orig/DATAUNIT.PAS
wp_xxyyzz 045c799d49 LazStats: Adding original source, part 3.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7882 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2020-11-16 11:07:56 +00:00

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.