summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/PutcoLexpr.sci
blob: 0e2f9d0a08c1f79d93a7b1ac98fa392a67b5a8bc (plain)
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;