Conocer las veces que una cadena es parte de una matriz

Post Reply
nanoespinoza
Posts: 105
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Conocer las veces que una cadena es parte de una matriz

Post by nanoespinoza »

Estimados:

Tengo el siguiente problema y no le encuentro una solución adecuada con una función propia de FW o xHarbour (quizá una combinación entre AEval y AScan sea lo adecuado, pero no he podido dar con la sintaxis adecuada). Lo resumo: si tengo una matriz con varios elementos y quiero conocer la cantidad de veces que un valor especifico se encuentra contenido en la matriz.

Ejemplo_
aMatriz:={"XYZ", "ABC", "ABC", "DEF", "D12345", "ABC", "UVW"", "DEF"}

¿Como hago para conocer la cantidad de veces que la cadena "ABC" está repetida en aMatriz?

Saludos

Fernando Espinoza A.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Conocer las veces que una cadena es parte de una matriz

Post by Antonio Linares »

Code: Select all

function Main()

   local aMatriz := { "XYZ", "ABC", "ABC", "DEF", "D12345", "ABC", "UVW", "DEF" }
   local n := 0    
   
   AEval( aMatriz, { | c | If( c == "ABC", n++,) } )
   
   ? n
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
nanoespinoza
Posts: 105
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Conocer las veces que una cadena es parte de una matriz

Post by nanoespinoza »

Estimado Antonio

Perfecto, muchas gracias.

Saludos
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Conocer las veces que una cadena es parte de una matriz

Post by cnavarro »

Otra posibilidad

Code: Select all

#include "Fivewin.ch"

function Main()

   local aMatriz := { "XYZ", "ABC", "ABC", "DEF", "D12345", "ABC", "UVW", "DEF" }
   local n := 0    
   ? n := NumAt( "ABC", FW_ArrayAsList( aMatriz, ";" ) )
   
return nil
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply