function strn, number, LENGTH = length, PADTYPE = padtype, PADCHAR = padchar, $ FORMAT = Format ; On_error,2 if ( N_params() LT 1 ) then begin print,'Call: IDL> tmp=STRN(number,[length=,padtype=,padchar=,format=])' print,"e.g.: IDL> print,'Executed ',strn(ret,leng=6,padt=1,padch='0'),' retries.'" return,'' endif if (N_elements(padtype) eq 0) then padtype=1 if (N_elements(padchar) eq 0) then padchar=' ' if (N_elements(Format) eq 0) then Format='' padc = byte(padchar) pad = string(replicate(padc(0),200)) ss=size(number) & PRN=1 & if (ss(1) eq 7) then PRN=0 if ( Format EQ '') then tmp = strtrim( string(number, PRINT=PRN),2) $ else tmp = strtrim( string( number, FORMAT=Format, PRINT=PRN),2) if (N_elements(length) eq 0) then length=strlen(tmp) if (strlen(tmp) gt length) then tmp=strmid(tmp,0,length) if (strlen(tmp) lt length) and (padtype eq 0) then begin tmp = tmp+strmid(pad,0,length-strlen(tmp)) endif if (strlen(tmp) lt length) and (padtype eq 1) then begin tmp = strmid(pad,0,length-strlen(tmp))+tmp endif if (strlen(tmp) lt length) and (padtype eq 2) then begin padln=length-strlen(tmp) & padfr=padln/2 & padend=padln-padfr tmp=strmid(pad,0,padfr)+tmp+strmid(pad,0,padend) endif return,tmp end