1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// 10.04.01
function PutcoLexpr(varargin)
Nargs=length(varargin);
TbL=varargin(1);
if type(TbL)~=15
disp('Tabledata missing')
return;
end;
Ag=varargin(2);
if type(Ag)==1
CoL=Ag;
else
Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Clm=[];
for I=1:length(Ag)
C=part(Ag,I:I);
Tmp=ascii(C);
if Tmp>=96
C=char(Tmp-32);
end;
Tmp=mtlb_findstr(C,Alpha)
if length(Tmp)>0
Clm=[Clm,Tmp-1];
end;
end;
Nrg=0;
for I=length(Clm):-1:1
Tmp=Clm(I);
Tmp1=length(Clm)-I;
Nrg=Nrg+Tmp*26^Tmp1;
end;
CoL=Nrg;
end;
Nr=length(TbL(3))+1;
K=1;
Dpos=varargin(3);
for I=4:Nargs
if I-3>Nr
break;
end;
Dt=varargin(I);
if type(Dt)~=15
Dt='$'+Dt+'$';
Putcell(TbL,CoL,K,Dpos,Dt);
K=K+1;
else
N=length(Dt);
Str='$'+Dt(N)+'$';
Rrng=[K,K+1];
Pos=Dpos;
for J=1:(N-1)
Tmp=Dt(J);
if type(Tmp)==1
Rrng=[K,K+Tmp];
end;
if type(Tmp)==10
Pos=Tmp;
end;
end;
Putcell(TbL,CoL,Rrng,Pos,Str)
K=Rrng(2);
end;
end;
endfunction;
|