Ascan array multdimensional
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
aProd := {{'001','MESA'},{'002','CADEIRA'}}
Como eu uso com eficiência o ascan() neste caso para achar o código '0001' ? Tem milhares de código, descrição neste array.
Tive olhando com "for next"
IF AScan(aProd,... ?
Saudações,
Itamar M. Lins Jr.
aProd := {{'001','MESA'},{'002','CADEIRA'}}
Como eu uso com eficiência o ascan() neste caso para achar o código '0001' ? Tem milhares de código, descrição neste array.
Tive olhando com "for next"
IF AScan(aProd,... ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Eu respondo para mim mesmo!
Saudações,
Itamar M. Lins Jr.
Eu respondo para mim mesmo!
Código: Selecionar todos
function main
local cProd:='001', aProd := {{'001','MESA'},{'002','CADEIRA'},{'003','MARTELO'}}
? len(aProd)
? aProd[1][1]
? aProd[2][1]
? aProd[3][1]
? ascan( aProd, {|e|e[1] == cProd} )
return .t.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Tem certeza disso?
codeblock não seria outra posição?
Por coincidência acabei neste post justamente procurando sobre isso.
codeblock não seria outra posição?
Por coincidência acabei neste post justamente procurando sobre isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Manual do Harbour está confuso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Manual do Clipper
Mas não define se o retorno do codeblock é .T./.F. ou valor
Mas não define se o retorno do codeblock é .T./.F. ou valor
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Olhando o do Harbour de novo:
Na descrição diz ok sobre o uso de codeblock.
Mas o exemplo usa diferente.
Na descrição diz ok sobre o uso de codeblock.
Mas o exemplo usa diferente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Saudações,
Itamar M. Lins Jr.
O teste fala por si. Já fiz aqui no SPED e deu certo...Quer dizer aparentemente está ok.Tem certeza disso?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Pois é.... fazendo igual o exemplo não funciona.
Mas assim funciona
Lembro de existir essa diferença, mas não lembro exatamente porque.
Uma prova de que isso existiu é o próprio exemplo.
Mas assim funciona
Lembro de existir essa diferença, mas não lembro exatamente porque.
Uma prova de que isso existiu é o próprio exemplo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Talvez confusão com ASort().... mas coincidência confundirem no exemplo.
Nota: apesar de eu ter testado hb_AScan(), AScan() tem o mesmo resultado.
Nota: apesar de eu ter testado hb_AScan(), AScan() tem o mesmo resultado.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Aqui está ok
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
C:\fontes\exemplos>hbrun ascan.prg
hbshell: Atenção: Não é possível encontrar o 3rd/expat/expat.hbc (referenciado
por C:\HB32\contrib\hbexpat\hbexpat.hbc)
3
001
002
003
1
0
C:\fontes\exemplos>Código: Selecionar todos
function main
local cProd:='001', aProd := {{'001','MESA'},{'002','CADEIRA'},{'003','MARTELO'}}
? len(aProd)
? aProd[1][1]
? aProd[2][1]
? aProd[3][1]
? ascan( aProd, {|e|e[1] == cProd} )
? ascan( aProd, 'MARTELO' )
return .t.Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- carlaoonline
- Usuário Nível 3

- Mensagens: 190
- Registrado em: 24 Ago 2014 22:38
- Localização: Porto Alegre-RS
Ascan array multdimensional
https://doc.alaska-software.com/content ... ascan.html
Localiza-> Search in an array na pagina
Nada que os mestres não saibam (tem exemplo igual mais acima citado), mas só pra constar mais um site de help para as pessoas normais.
Localiza-> Search in an array na pagina
Nada que os mestres não saibam (tem exemplo igual mais acima citado), mas só pra constar mais um site de help para as pessoas normais.
Editado pela última vez por Itamar M. Lins Jr. em 22 Fev 2023 14:44, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ url ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r0
Razão: Mensagem editada para colocar a tag [ url ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r0
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Pois é! Da forma que mostrei é MUITO mais simples de entender e está correto.
No exemplo, do xBase++ Já tem adirectory() ai a pessoa não sabe como é estrutura do array de retorno... Tem mais um arquivo .CH para entender... etc..
Muito bla, bla, bla... Para ensinar pesquisa com codeblock.
Saudações,
Itamar M. Lins Jr.
Pois é! Da forma que mostrei é MUITO mais simples de entender e está correto.
No exemplo, do xBase++ Já tem adirectory() ai a pessoa não sabe como é estrutura do array de retorno... Tem mais um arquivo .CH para entender... etc..
Muito bla, bla, bla... Para ensinar pesquisa com codeblock.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Este exemplo aqui está errado!
Não funciona no Harbour. O retorno no Harbour é NIl, NIL (não acha)
Saudações,
Itamar M. Lins Jr.
Este exemplo aqui está errado!
Código: Selecionar todos
// The example shows a simple routine that translates
// strings to numeric IDs and vice versa using a
// two-dimensional array.
#define ID_APPLES 100
#define ID_PEARS 200
#define ID_ORANGES 300
PROCEDURE Main
CLS
? Translate( ID_APPLES ) // result: Apples
? Translate( "Oranges" ) // result: 300
RETURN
FUNCTION Translate( xValue )
STATIC saTable := { ;
{ ID_APPLES , "Apples" }, ;
{ ID_PEARS , "Pears" }, ;
{ ID_ORANGES, "Oranges" } ;
}
LOCAL i := AScan( saTable, xValue )
IF i == 0
RETURN NIL
ENDIF
RETURN IIF( Valtype(xValue)=="C", saTable[i,1], saTable[i,2] )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Ascan array multdimensional
Olá!
Usando asort em um vetor !
Saudações,
Itamar M. Lins Jr.
Usando asort em um vetor !
Código: Selecionar todos
function main
local n, cProd:='001', aProd := {{'003','MESA'},{'001','CADEIRA'},{'002','MARTELO'}}
? len(aProd)
? aProd[1][1]
? aProd[2][1]
? aProd[3][1]
? ascan( aProd, {|e|e[1] = cProd} )
? asort(aProd,,,{|x,y|x[1]<y[1]})
for n := 1 to len(aProd)
? aProd[n][1]
next
return .t.Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ascan array multdimensional
Código: Selecionar todos
// The example shows a simple routine that translates
// strings to numeric IDs and vice versa using a
// two-dimensional array.
#define ID_APPLES 100
#define ID_PEARS 200
#define ID_ORANGES 300
PROCEDURE Main
CLS
? Translate( ID_APPLES ) // result: Apples
? Translate( "Oranges" ) // result: 300
RETURN
FUNCTION Translate( xValue )
LOCAL aList := { ;
{ ID_APPLES , "Apples" }, ;
{ ID_PEARS , "Pears" }, ;
{ ID_ORANGES, "Oranges" } ;
}
LOCAL nPos
IF ValType( xValue ) == "N"
nPos := AScan( aList, { | e | e[ 1 ] == xValue } )
ELSE
nPos := ASCan( aList, { | e | e[ 2 ] == xValue } )
ENDIF
IF nPos == 0
RETURN NIL
ENDIF
RETURN aList[ nPos, iif( Valtype( xValue ) == "C", 1, 2 ) ]
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/