duvida com asort
Moderador: Moderadores
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
duvida com asort
Ola pessoa bom dia.
Estou uma duvida na funcao asort()
tenho a seguinte matriz
aadd(Vmat1, str(codigo,13) + " " + left(nomeprod,25))
preciso organizar por orde de nome, em formato crescente "ALFACE,BATATA"ETC.
Agradeco desde ja.
Estou uma duvida na funcao asort()
tenho a seguinte matriz
aadd(Vmat1, str(codigo,13) + " " + left(nomeprod,25))
preciso organizar por orde de nome, em formato crescente "ALFACE,BATATA"ETC.
Agradeco desde ja.
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
Re: duvida com asort
Para que sua ordenadação especial seja implementada a contento, você só precisará limitar as strings de comparação. Assim, para ordenação ascendente da string parcial (posição 15, onde começa o nome do produto):aadd(Vmat1, str(codigo,13) + " " + left(nomeprod,25))
preciso organizar por orde de nome, em formato crescente "ALFACE,BATATA"ETC.
Código: Selecionar todos
ASort(VMat1,,,{|x,y|Right(x,25) < Right(y,25)})[]'s
Maligno
http://www.buzinello.com/prg
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Só corrigindo o exemplo do nosso amigo Maligno...
O correto é:
Atenção: desconsidere esta mensagem - veja as demais mensagens abaixo...
Mensagem editada por Toledo em 02/05 - 16:30 hs
Abraços,
O correto é:
Código: Selecionar todos
ASort(VMat1,,,{|x,y|Right(x[1],25) < Right(y[1],25)})
Mensagem editada por Toledo em 02/05 - 16:30 hs
Abraços,
Editado pela última vez por Anonymous em 02 Mai 2005 16:43, em um total de 1 vez.
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
obrigado a todos, funcionou chuchu beleza.
:xau :xau :xau :xau :xau :xau :xau :xau
:xau :xau :xau :xau :xau :xau :xau :xau
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
Corrigindo sua correção:Toledo escreveu:Só corrigindo o exemplo do nosso amigo Maligno...
Como a matriz do nosso amigo é unidimensional, o exemplo que mostrei está correto. A sua correção é que está, conceitualmente, errada. Apesar do erro, não deve gerar erro de run-time.
[]'s
Maligno
http://www.buzinello.com/prg
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Você está certo. Portanto, sou eu quem pede desculpas pelo lapso.isto gera erro de run-time SIM !!!
[]'s
Maligno
http://www.buzinello.com/prg
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Maligno,
Revendo o exemplo do Clebermano, notei que ele realmente utilizou uma matriz unidimensional, e sendo assim, a minha correção está completamente errada.
Como eu sempre que vou adicionar um novo elemento a uma matriz coloco o conteúdo do elemento entre { } (chaves), mesmo que sendo uma única dimensão, pressuni que a função ASORT() não iria fazer a ordenação corretamente.
Note que ele não usou { } ao adicionar o conteúdo na matriz...
Caso, ele tivesse usado as chaves, o meu exemplo estaria correto.
Abraços,
Revendo o exemplo do Clebermano, notei que ele realmente utilizou uma matriz unidimensional, e sendo assim, a minha correção está completamente errada.
Como eu sempre que vou adicionar um novo elemento a uma matriz coloco o conteúdo do elemento entre { } (chaves), mesmo que sendo uma única dimensão, pressuni que a função ASORT() não iria fazer a ordenação corretamente.
Note que ele não usou { } ao adicionar o conteúdo na matriz...
Código: Selecionar todos
aadd(Vmat1, str(codigo,13) + " " + left(nomeprod,25))
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
Bom, eh que sempre usei matrizes unidimensionais, acho + facil, mas valeu a todos.obrigado, funicionou direitinho..
:xau :xau :xau :xau :xau
) :xau :xau :xau :xau :xau :xau
:xau :xau :xau :xau :xau
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
