Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.


Objetivo: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
Hola a todos.
Pues eso, alguna función existente que haga eso?


Saludos

Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
tincho

Creo que no existe, pero he encontrado este comando:

$ fgrep -o ">" file.fas | wc -l

Esta es la entrada donde aparece:
https://bioinformatiquillo.wordpres...o-con-fgrep-wc/

Mas información, pero esta vez usando grep:

grep -c “palabra” logfile.txt

https://paraisolinux.com/10-usos-para-grep/

última edición por jsbsan el Miercoles, 14 Noviembre 2018, 08:16; editado 2 veces
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
Tengo hecha ésta:

Public Sub cuentacadenas(cad As String, pattern As String) As Integer

Dim n, i As Integer

While True
n = InStr(cad, pattern, n)
If n = 0 Then Break
Inc i
n += Len(pattern)
Wend
Return i

End

última edición por shordi el Miercoles, 14 Noviembre 2018, 09:53; editado 1 vez
Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
jsbsan escribió: [Ver mensaje]
...Creo que no existe, pero he encontrado este comando:...

Me lo apunto, muy interesante para conteo de palabras y lo de irrelevantes o relevantes que viene a ser? habrá que probarlo.
De momento no doy con la solución en los términos del titulo del post, pero encontré otra manera de hacerlo.
El problema que deseaba solucionar era que en el texto que extraigo del ID3 de un mp3 algunos frames [1] se repetían. y usaba una función que se basaba en que ninguno debía hacerlo (error de diseño por mi parte) y se me ocurrió una solución en la que debía saber si se repetían y ademas en que posición se encontraban todas las ocurrencias.
Finalmente modifique la función usando un Replace antes y listo.

[1] Un frame por ejemplo es: TALB para el álbum TPE1 para el artista TRCK para el número de track, etc.

Si bien solucione el problema, me gustaría saber si existe una función que haga el conteo y listado de repeticiones de una palabra que se pasa como parámetro.
Tal vez la haga en un futuro próxima si no la encuentro.

Saludos.

última edición por tincho el Miercoles, 14 Noviembre 2018, 10:05; editado 1 vez
Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
Citar:

Si bien solucione el problema, me gustaría saber si existe una función que haga el conteo y listado de repeticiones de una palabra que se pasa como parámetro.
Tal vez la haga en un futuro próxima si no la encuentro.


Modificando la que te he pasado es muy sencillo, en lugar de simplemente devolver el valor de i, almacena el valor de n en un array y devuelve el array. Algo así:

ublic Sub cuentacadenas(cad As String, pattern As String) As Integer[]

Dim n As Integer
dim ar as new integer[]

While True
n = InStr(cad, pattern, n)
If n = 0 Then Break
ar.Add(n)
n += Len(pattern)
Wend
Return ar

End

Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
shordi escribió: [Ver mensaje]
Tengo hecha ésta:

Que te parece así?
Public Function StringRep(str As String, strPattern As String) As Integer[] '' Funcion que cuenta ocurencias de una cadena de texto en otra y lista las posiciones de esta en una matriz de enteros.

Dim n As Integer
Dim inx As New Integer[]

While True
n = InStr(str, strPattern, n)
If n = 0 Then Break
inx.Add(n)
n += Len(strPattern)
Wend
Return inx

End

Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
jajaja, nos estamos cruzando una y otra vez las respuestas...

Perfil MP  
Objetivo: Re: Funcion Que Liste Todas Las Veces Que Una Cadena Se Encuentre En Otra.
shordi escribió: [Ver mensaje]
jajaja, nos estamos cruzando una y otra vez las respuestas...

Jaja, si.
Bueno lo importante es que hay una función mas en la "caja de herramientas"

Saludos.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4036s (PHP: -76% SQL: 176%)
Consultas SQL: 47 - Debug off - GZIP Activado