WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Array UDFs

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Sort Two Dimensional Array UDF

RUn


#DefineFunction SortArray( array, sortCol )

   ;***************************************************************************
   ;**  SortArray(array,sortCol)
   ;**  Sorts an array
   ;**
   ;**  Parameters:
   ;**     (a) a two dimensional array
   ;**     (i) zero based number indicating the column to sort
   ;**
   ;**  Returns:
   ;**      (a) a sorted array
   ;**
   ;***************************************************************************
   ;
   ; Get Row and Column Count
   arrRows=ArrInfo(array,1)
   arrCols=ArrInfo(array,2)

   ; Create and populate fields array
   aFlds=ArrDimension(arrCols)
   For x=0 To arrCols-1
      aFlds[x]=StrCat("column",x)
   Next

   ; Create value array
   aVal=ArrDimension(arrCols)

   ; Create recordset
   RS=ObjectCreate("ADODB.RecordSet")
   varChar=200

   ; Define Fields in Recordset
   For x=0 To arrCols-1
      rs.fields.append(aFlds[x],varChar,255)
   Next

   ; Open Recordset and pass data from source array to recordset
   rs.Open
   For row=0 To arrRows-1
      For col=0 To arrCols-1
         aVal[col]=array[row,col]
      Next
      rs.addNew(aFlds,aVal)
   Next

   ; Sort
   rs.sort=StrCat("column", sortCol)

   ; Load Recordset back into Array
   rs.moveFirst
   While ! rs.eof
      For row=0 To arrRows-1
         For col=0 To arrCols-1
            temp=StrTrim(rs.Fields(aFlds[col]).value)
            array[row,col]=temp
         Next
      rs.moveNext
      Next
   EndWhile

   rs.close
   rs=""
   Return array
#EndFunction

Article ID:   W16735
File Created: 2008:06:10:10:52:18
Last Updated: 2008:06:10:10:52:18