Jump to content


Photo

Ajuda Em Código Ordenação


  • Faça o login para participar
5 replies to this topic

#1 thicomp

thicomp

    12 Horas

  • Usuários
  • 134 posts
  • Sexo:Não informado

Posted 27/12/2006, 09:45

Por favor, alguém poderia meajudar neste código...



<%
FUNCTION SortArray(varArray)
For i = UBound(varArray) - 1 To 1 Step - 1
MaxVal = varArray(i)
MaxIndex = i
For j = 0 To i
If varArray(j) > MaxVal Then
MaxVal = varArray(j)
MaxIndex = j
End If
Next
If MaxIndex < i Then
varArray(MaxIndex) = varArray(i)
varArray(i) = MaxVal
End If
Next
END FUNCTION
response.write "<html><head><style>a{text-decoration:none;font-family:verdana;}</style></head><body>"
response.write "<br><br><center><table cellpadding=1 cellspacing=1 border=0 width=500>"
response.write "<tr bgcolor='#666666'><td align=center height=35 colspan=2><font face=verdana size=2 color='#ffffff'><b>Usuários</b></font>"



Response.Expires = 0
Response.Buffer = True
session ("it")="usu"
'PAGINAÇÃO DE ARQUIVOS USANDO ARRAY x FSO
Dim iLoop, limite, pagina, totalarq, i, x
Dim vlMaximo, vlMinimo, anterior
Dim ObjFso, ObjArq, ObjPasta, ObjSubPasta
Dim usuario, cor



Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjPasta = ObjFso.GetFolder(server.MapPath("/rel_P_D/Usuarios/"))



limite = 10 ' limite de registros por página
totalarq = ObjPasta.files.count ' total de arquivos encontrados



ReDim arrAvatar((totalarq-1))
Dim y
y = 0



' guardamos cada arquivo dentro de um array
For Each ObjArq in ObjPasta.Files



arrAvatar(y) = left(objArq.Name,3)
y = y + 1
Next



Set ObjPasta = Nothing
Set ObjArq = Nothing
Set ObjFso = Nothing



pagina = Request("pag")
IF pagina = "" Then
IF limite < UBound(arrAvatar) Then
vlMinimo = 0
vlMaximo = (limite-1)
Else
vlMinimo = LBound(arrAvatar)
vlMaximo = UBound(arrAvatar)
End IF
pagina = 1
anterior = ""
Else
vlMinimo = (pagina*(limite-1))+(pagina)
vlMaximo = ((limite-1)*(pagina+1))+((pagina)*1)
IF vlMaximo > UBound(arrAvatar) Then vlMaximo = UBound(arrAvatar)
pagina = pagina + 1
anterior = pagina - 2
IF anterior = 0 Then anterior = ""
End IF
For i = vlMinimo to vlMaximo
if cor= "#d2dfee" then: cor= "#eef3f9" else: cor= "#d2dfee": end if



response.write "<tr bgcolor='"& cor &"'><td height=20 colspan=2><a href=http://rel_P_D/cad1.asp?nome="
response.write arrAvatar(i) &"&org=dt>"
select case arrAvatar(i)
%>
<!--#include file="select.asp"-->
<%
end select



ReDim ArrUsuario(46)
SortArray ArrUsuario
for usuario=1 to UBound(ArrUsuario)
if usuarios<>"" then usuarios=usuarios&","
usuarios=usuario
next
ArrUsuario=split(usuario,",")



response.write ArrUsuario(usuario)



Next
response.write "<tr>"
IF vlMinimo = 0 Then
IF Not (vlMaximo >= (y-1)) Then
End IF
Else
response.write "<td align=left valign=top><a href='ord1.asp?pag="& anterior &"'><img src='img/esq.gif' border=0>anterior</a>"
End IF
IF Not (vlMaximo >= (y-1)) Then
response.write "<td valign=top align=right><a href='ord1.asp?pag="& pagina &"'><img src='img/dir.gif' border=0>próxima</a>"
End IF
response.write "<br><br>"
%>


O erro retornado (refere-se a linha em vermelho)


Microsoft VBScript runtime error '800a000d'

Type mismatch

/rel_P_D/paginacaothi1.asp, line 92

Edição feita por: thicomp, 27/12/2006, 10:26.


#2 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 27/12/2006, 10:14

Bom, não vi nenhuma linha em vermelho.

E não sei o que pretende fazer com este código.

Mas verifique se não esta usando funções como UBound, LBound, que são especificas para Arrays, em strings.

[]s

#3 thicomp

thicomp

    12 Horas

  • Usuários
  • 134 posts
  • Sexo:Não informado

Posted 27/12/2006, 10:24

Ops, foi mal...
O erro ocorre nesta linha

ArrUsuario=split(usuario,",")

#4 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 27/12/2006, 10:45

Foi você que escreveu este código?

O que ele deve fazer?

Para que serve essa parte?

Talvez você tenha se confundido com tantos nomes de variaveis parecidos.

Olhando assim pro codigo sem saber o que ele tem que fazer é meio complicado de saber.

[]s

#5 thicomp

thicomp

    12 Horas

  • Usuários
  • 134 posts
  • Sexo:Não informado

Posted 27/12/2006, 11:03

Bom, é pra fazer o seguinte...

Ao ser chamado, ele vai até a pasta "Usuarios" dentro do sistema, onde cada arquivo txt está nomeado com o código do usuário.
Ao receber o código do usuário, ele compara este código com o nome do usuário, que se encontra no arquivo select.asp, que é carregado através do "include file" e imprime na tela o nome do usuário.

Pois bem, até aí funciona legal, só que eu gostaria que ele, ao ser impresso na tela, ele viesse ordenado por nome do usuário.

O que está acontecendo é que quando a página é carregada, ele imprime na tela o nome do usuário, mas ordenado pelo código de cada um, portanto, entendeu??

Desorganizado por nome
Organizado por código

#6 thicomp

thicomp

    12 Horas

  • Usuários
  • 134 posts
  • Sexo:Não informado

Posted 04/01/2007, 11:03

Bom, por favor, se puderem dar uma olhada neste código

Ele lê td certinho, só que na hora de imprimir, ele não faz a função "BubbleSort"... Se eu mando imprimir a matriz, sem a formatação da "table", ele me retorna os nomes dos usuários um na frente do outro, sem ao menos um espaço separando-os. Tipo assim: nome1nome2nome3...

Se eu deixar a linha que está em vermelho, chamando a função BubbleSort, me retorna o seguinte erro:

Response object error 'ASP 0106 : 80020005'

Type Mismatch

/rel_P_D/paginacaothi1_2.asp, line 0

An unhandled data type was encountered.



CODE
<!-- #include file = "menu.css" -->
<%@LANGUAGE="VBSCRIPT"%>
<%
Function BubbleSort( matriz )
dim i, j, aux
For i = 0 To UBound(matriz)
For j = 0 To UBound(matriz)
If( matriz(i) < matriz(j) ) Then
aux = matriz(j)
matriz(j) = matriz(i)
matriz(i) = aux
End If
Next
Next
BubbleSort = matriz
End Function
response.write "<html><head><style>a{text-decoration:none;font-family:verdana;}</style></head><body>"
response.write "<br><br><center><table cellpadding=1 cellspacing=1 border=0 width=500>"
response.write "<tr bgcolor='#666666'><td align=center height=35 colspan=2><font face=verdana size=2 color='#ffffff'><b>Usuários</b></font>"

Response.Expires = 0
Response.Buffer = True
session ("it")="usu"
'PAGINAÇÃO DE ARQUIVOS USANDO ARRAY x FSO
Dim iLoop, limite, pagina, totalarq, i, x
Dim vlMaximo, vlMinimo, anterior
Dim ObjFso, ObjArq, ObjPasta, ObjSubPasta
Dim usuario, cor

Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjPasta = ObjFso.GetFolder(server.MapPath("/rel_P_D/Usuarios/"))

limite = 14 ' limite de registros por página
totalarq = ObjPasta.files.count ' total de arquivos encontrados

ReDim arrAvatar((totalarq-1))
Dim y
y = 0

' guardamos cada arquivo dentro de um array
For Each ObjArq in ObjPasta.Files

arrAvatar(y) = left(objArq.Name,3)
y = y + 1
Next

Set ObjPasta = Nothing
Set ObjArq = Nothing
Set ObjFso = Nothing

pagina = Request("pag")
IF pagina = "" Then
IF limite < UBound(arrAvatar) Then
vlMinimo = 0
vlMaximo = (limite-1)
Else
vlMinimo = LBound(arrAvatar)
vlMaximo = UBound(arrAvatar)
End IF
pagina = 1
anterior = ""
Else
vlMinimo = (pagina*(limite-1))+(pagina)
vlMaximo = ((limite-1)*(pagina+1))+((pagina)*1)
IF vlMaximo > UBound(arrAvatar) Then vlMaximo = UBound(arrAvatar)
pagina = pagina + 1
anterior = pagina - 2
IF anterior = 0 Then anterior = ""
End IF
For i = vlMinimo to vlMaximo
if cor= "#d2dfee" then: cor= "#eef3f9" else: cor= "#d2dfee": end if

select case arrAvatar(i)
%>
<!--#include file="select.asp"-->
<%
end select

matriz = split(usuario,";")

for x=0 to UBound(matriz)
BubbleSort(matriz)
'response.write BubbleSort ( matriz )
response.write "<tr bgcolor='"& cor &"'><td height=20 colspan=2><a href=http://rel_P_D/cad1.asp?nome="&arrAvatar(i)&">"&matriz(x)&"</a>"
next

Next
response.write "<tr>"
IF vlMinimo = 0 Then
IF Not (vlMaximo >= (y-1)) Then
End IF
Else
response.write "<td align=left valign=top><a href='paginacaothi1_2.asp?pag="& anterior &"'><img src='img/esq.gif' border=0>anterior</a>"
End IF
IF Not (vlMaximo >= (y-1)) Then
response.write "<td valign=top align=right><a href='paginacaothi1_2.asp?pag="& pagina &"'><img src='img/dir.gif' border=0>próxima</a>"
End IF
response.write "<br><br>"
%>

Edição feita por: thicomp, 04/01/2007, 11:06.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq