Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 521
  • Last Modified:

Sort ASP\VBScript Array

Hello,

In a Classic ASP application I have a string array (aTable1) where the contents of an element looks like this:

"10001,Smith,John"

Yep, it is really a comma delimited record.  The first field is fixed in width (5 characters).  I want to sort the array on the second field.


What is the easiest way to do this?


Thanks,

Michael
0
michael4606
Asked:
michael4606
1 Solution
 
brad2575Commented:
easiest/most effeciant way would be to insert the data into a SQL table (can use a temp table) and the sort it from the SQL table.
0
 
michael4606Author Commented:
Cool suggestion.  

My error.  I should have qualified it further that I cannot use a SQL database to achieve this.

Thanks for the response,

Michael
0
 
dosthCommented:
you can build a record set on the fly and append the data to the record set and sort.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
NorushCommented:
Is your array 1-dimensional ?
Like: "10001,Smith,John"

or 2-dimensional ?
like
"10001,Smith,John"
"10002,Gibson,Paul"
"10003,Jackson,Micheal"
0
 
michael4606Author Commented:
It is a 1-dimensional array.  The value of each element is a string that looks like this:

"10000,aaaaa,aaaaa"

So three elements might look like this:

aTable(0), aTable(1) and aTable(2)

"10000,aaaaa,aaaaa"
"10001,bbbbbbb,bbb"
"10002,ccccc,ccccccccc"

The value of the string just happens to be a comma delimited list where the first item is fixed width and the rest are variable width.
0
 
NorushCommented:
So if you had an element like this:

"10000,b,z,a"
you want to transfer it into  ?
"10000,a,b,z"

and the same for all elements ?
0
 
michael4606Author Commented:
Norush,

Great question.  Sometimes I am so stupid when posting questions.  Sorry for the lack of clarity.

The answer is no.  I do NOT want to sort the string list within in each array element.  I want to sort all the elements in the array based on the values of the second "field" in the list of each element.  The first "field" in the list always being a fixed value of 5 characters (10001).  So the first positional "field" that I want to sort on would be position 7 (1st field plus comma separator).

Example.  Say I have these array values:

"10002,ccccc,zzz"
"10000,aaaaa,zzz"
"10001,bbbbbbb,zzz"

I want them to be sorted as this:

"10000,aaaaa,zzz"
"10001,bbbbbbb,zzz"
"10002,ccccc,zzz"

Again, sorry for not stating my goal more clearly.

Sincere thanks for your help,

Michael
0
 
NorushCommented:
Like this?
<%
	Dim arrShort(2)
	Dim arrTemp
	Dim strSecondColumnValue
	Dim strNextSecondColumnValue
	
	arrShort(0) = "10002,ccccc,zzz"
	arrShort(1) = "10000,aaaaa,zzz"
	arrShort(2) = "10001,bbbbbbb,zzz"
	
	for i = UBound(arrShort) - 1 To 0 Step -1
	    for j= 0 to i
			arrTemp = Split(arrShort(j),",")
			strSecondColumnValue = arrTemp(1)
			
			arrTemp = Split(arrShort(j+1),",")
			strNextSecondColumnValue = arrTemp(1)
			
	        if strSecondColumnValue>strNextSecondColumnValue then
	            temp=arrShort(j+1)
	            arrShort(j+1)=arrShort(j)
	            arrShort(j)=temp
	        end if
	    next
	next
	
	Response.Write arrShort(0) & "<BR>"
	Response.Write arrShort(1) & "<BR>"
	Response.Write arrShort(2) & "<BR>"
%>

Open in new window

0
 
michael4606Author Commented:
Norush,

Thanks that is perfect!
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now