library
LoadLanImpl;
uses
Windows,SysUtils,Classes,JNI;
type
LAN_Header=
record
HDWORD:
array
[
0..5
]
of
byte
;
IPACK:
word
;
NBANDS:
word
;
unused1:
array
[
0..5
]
of
byte
;
ICOLS:
integer
;
IROWS:
integer
;
XSTART,YSTART:
integer
;
unused2:
array
[
0..55
]
of
byte
;
MAPTYP,NCLASS:
word
;
unused3:
array
[
0..13
]
of
byte
;
IAUTYP:
word
;
ACRE,XMAP,YMAP,XCELL,YCELL:
single
;
end
;
type
mas=
array
of
array
of
array
of
JShort;
procedure
Java_createhypertables_LoadLAN_displayMass(PEnv: PJNIEnv; Obj: JObject; value: JString;
var
data:mas);
{$IFDEF WIN32} stdcall; {$ENDIF} {$IFDEF LINUX} cdecl; {$ENDIF}
var
FData:
file
;
Header:LAN_HEADER;
buf:
smallint
;
i,j,k:
integer
;
nCols,nRows,nBands:
integer
;
flLoadData:
boolean
;
value1:
WideString
;
begin
value1:=JNI_JStringToWideString(PEnv, value);
try
AssignFile(FData,value1);
Filemode:=fmOpenread;
Reset(FData,
1
);
BlockRead(FData,Header,sizeof(Header));
Setlength(data,Header
.
IROWS,Header
.
ICOLS,Header
.
NBANDS);
nRows:=Header
.
IROWS;
nCols:=Header
.
ICOLS;
nBands:=Header
.
NBANDS;
for
i:=
0
to
Header
.
IROWS-
1
do
for
k:=
0
to
Header
.
NBANDS-
1
do
for
j:=
0
to
Header
.
ICOLS-
1
do
begin
BlockRead(FData,buf,
2
);
data[i,j,k]:=buf;
end
;
flLoadData:=
true
;
finally
CloseFile(FData);
end
;
end
;
exports
Java_createhypertables_LoadLAN_displayMass;
end
.