Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Macro for ordering dates chronologically in Words Documents
#10
Example
Code:
Copy      Help
out

;Create test array
ARRAY(VARIANT) a.create(3 12)
int i j; str s ss
ss=
;january
;february
;march
;april
;may
;june
;july
;august
;september
;october
;november
;december

for i 0 a.len
,a[0 i]=i+1
,s.getl(ss -i)
,a[1 i]=s
out "[]Unsorted array:"
for(i 0 a.len) out a[1 i]

;Sort by second column
SortVariantArray2Dim a 1
out "[]Sorted by second column:"
for(i 0 a.len) out a[1 i]

;Sort by first column
SortVariantArray2Dim a 0
out "[]Sorted by first column:"
for(i 0 a.len) out a[1 i]

Function SortVariantArray2Dim
Code:
Copy      Help
;/
function ARRAY(VARIANT)&a col

if(!a.len) ret
if(a.ndim!=2) end "must be 2-dim array"
if(col>=a.len(1) or col<0) end "invalid column index"

int- t_sortArrCol
t_sortArrCol=col
qsort &a[0 0] a.len a.len(1)*sizeof(VARIANT) &__SortVarArr

Function __SortVarArr
Code:
Copy      Help
function[c]# VARIANT*a VARIANT*b

;a and b are pointer-based arays containing 1 row

int- t_sortArrCol
ret a[t_sortArrCol].cmp(b[t_sortArrCol])


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)