Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Psyke1

#681
Bueno, no me pude aguantar, aqui tienes LeandroA  ;):

Código (vb) [Seleccionar]

Option Explicit

Public Function IsInFilter(ByVal sText As String, ByVal sPatern As String) As Boolean
Dim oRegExp                             As Object
Dim oMatches                            As Object
   Set oRegExp = CreateObject("VBScript.RegExp")
   sText = " " & sText
   sPatern = ReplaceFilter(sPatern)
   With oRegExp
       .Pattern = sPatern
       .Global = True
       .IgnoreCase = True
   End With
   Set oMatches = oRegExp.Execute(sText)
   IsInFilter = CBool(oMatches.Count)
End Function

Public Function ReplaceFilter(ByVal sFilter As String) As String
Dim x                                   As Integer
Dim n                                   As Integer
Dim sActualChar                         As String
   x = 1: n = 1
   Do Until x > Len(sFilter)
       sActualChar = Mid$(sFilter, x, 1)
       If sActualChar = "?" Then
           Do While Mid$(sFilter, x + 1, 1) = "?"
               n = n + 1
               x = x + 1
           Loop
           sActualChar = ".{" & n & "}"
           n = 1
       ElseIf sActualChar = "." Then
           sActualChar = "\."
       End If
       ReplaceFilter = ReplaceFilter + sActualChar
       x = x + 1
   Loop
   ReplaceFilter = Replace$(ReplaceFilter, "*", ".+")
   ReplaceFilter = Replace$(ReplaceFilter, " ", "|")
   If Left$(sFilter, 1) = "?" Then
       ReplaceFilter = "(\s" & ReplaceFilter & ")"
   Else
       ReplaceFilter = "(" & ReplaceFilter & ")"
   End If
End Function

' OffTopic : "Vivan las ranas¡!"
Private Sub Form_Load()
   Debug.Print IsInFilter("holal.jpg", "?????.jpg")    'True
   Debug.Print IsInFilter("a.jpg", "?.jpg")            'true
   Debug.Print IsInFilter("foto.jpg", "*.jpg")         'True
   Debug.Print IsInFilter("foto.jpg", "*.jpg *.bmp")   'True
   Debug.Print IsInFilter("foto.bmp", "*.jpg *.bmp")   'True
   Debug.Print IsInFilter("cualquiera.blend", "*.jpg *.bmp") 'False
   ' Los ejemplos que pusiste
   Debug.Print IsInFilter("Azteca.bmp", "a?????.bmp") 'True
   Debug.Print IsInFilter("Aztsdfdfdseca.bmp", "a?????.bmp") 'False
End Sub


Me devuelve:
Citar
Verdadero
Verdadero
Verdadero
Verdadero
Verdadero
Falso
Verdadero
Falso
::)

DoEvents¡! :P
#682
Os dejo esta funcion por si ayuda... ;)

Código (vb) [Seleccionar]
Public Function ReplaceFilter(ByVal Filtro As String) As String
Dim x                           As Integer
Dim n                           As Integer
Dim sActualChar                 As String
   x = 1 : n = 1
   Do Until x > Len(Filtro)
       sActualChar = Mid$(Filtro, x, 1)
       If sActualChar = "?" Then
           Do While Mid$(Filtro, x + 1, 1) = "?"
               n = n + 1
               x = x + 1
           Loop
           sActualChar = ".{" & n & "}"
           n = 1
       ElseIf sActualChar = "." Then
           sActualChar = "\."
       End If
       ReplaceFilter = ReplaceFilter + sActualChar
       x = x + 1
   Loop
   ReplaceFilter = Replace$(ReplaceFilter, "*", ".+")
   ReplaceFilter = Replace$(ReplaceFilter, " ", "|")
   ReplaceFilter = "(" & ReplaceFilter & ")"
End Function


Un ejemplo:
Código (vb) [Seleccionar]
Private Sub Form_Load()
   MsgBox ReplaceFilter("a*.jpg ????.bmp")
End Sub


Me devuelve:
Citar(a.+\.jpg|.{4}\.bmp)

Te da la Expresion Regular toda bonita  ::)

DoEvents¡! :P

EDITO: Se me ocurre otra forma de hacerlo, mañana posteo.. :)
#683
Exacto raul338!!  ;-)
Ahora si que si... :D
Tambien pense algo asi, pero me pudo la vagancia... :silbar: :laugh:

DoEvents¡! :P


#684
Hola LeandroA!!
Mira, te hice un ejemplo (Creo que es similar a lo que buscas):

Código (vb) [Seleccionar]
Option Explicit

Public Function Get_Extensions_Files(ByVal sText As String, ByVal sPatern As String) As Collection
Dim cTemp                               As New Collection
Dim oRegExp                             As Object
Dim oMatch                              As Object
Dim oMatches                            As Object
   '# Para evitar las referencias :P
   Set oRegExp = CreateObject("VBScript.RegExp")
   
   With oRegExp
       .Pattern = sPatern
       .Global = True
       .IgnoreCase = True
   End With
   Set oMatches = oRegExp.Execute(sText)
   
   For Each oMatch In oMatches
       cTemp.Add oMatch.Value
   Next
   
   Set Get_Extensions_Files = cTemp
End Function


Un ej:
Código (vb) [Seleccionar]
Private Sub Form_Load()
   Dim vItem               As Variant
   Dim sStringtoAnalyze    As String

   sStringtoAnalyze = "Hola, esto es un ejemplo LeandroA.jpg para que veas que funciona Mi_foto.jpg"
   For Each vItem In Get_Extensions_Files(sStringtoAnalyze, "(\S)+\.jpg")
       Debug.Print vItem
   Next
End Sub


Resultado:
Citar
LeandroA.jpg
Mi_foto.jpg

PD: Si tienes problemas, se puede mejorar la Expresion Regular, te lo he hecho "a lo rapido" :P

Espero haberte ayudado ;)

DoEvents¡! :P

EDIT:

Para sacar jpg y bmp:
((\S)+\.(jpg|bmp))


????.jpg es igual a:
(\S{4}\.jpg)

ar*.jpg equivale a :
(ar(\S)*\.jpg)

#685
Ok, Gracias Karcrack ;)

DoEvents¡! :P
#686
Cita de: Debci en 29 Agosto 2010, 13:22 PM
Que listo que es nuestro querido Basic xDDD

Saludos
>:(
Mas respeto a vB Debci! :laugh: :laugh:

@Karcrack
Esta interesante, pero aun no le veo la utilidad(si es que la tiene) :rolleyes:
Cual es la explicacion de estos fenómenos?¿ :huh:

DoEvents¡! :P
#687
mmmm
No se si te he entendido bien, si no es asi me corriges. :rolleyes:
Seleccionas el obejto que quieres meter, lo cortas, haces click en el frame y lo pegas...

PD : Apenas te veo en el msn. :silbar:

DoEvents¡! :P
#688
A ver si alguien me hecha una mano de paso:

Los Crimenes de Oxford
http://www.megavideo.com/?s=seriesyonkis&v=7235TE3I&confirmed=1
En el minuto 13:00 o en 18:40, si me pudieris decir el autor o musica similar... :rolleyes:

Mi banda sonora faborita es la de Matrix:
[youtube=425,350]http://www.youtube.com/watch?v=cdIROu_n9tk[/youtube]

DoEvents¡! :P
#689
Cita de: xkiz en 27 Agosto 2010, 22:36 PM
cual es el fin del post, osea es un aporte, consulta, o que?


Cita de: *PsYkE1* en 27 Agosto 2010, 22:26 PM
:o
Encima se le olvido el:
Código (vb) [Seleccionar]
Option Explicit

no es necesario ni obligatorio usar Option Explicit
Lo sé, pero yo lo uso para que sea necesario declarar las variables, que si no en proyectos grandes me hago un lio  :-\
En fin, lo dije por hacer la gracia, nada más...  ;)

DoEvents¡! :P
#690
 :o
Encima se le olvido el:
Código (vb) [Seleccionar]
Option Explicit
Jajajajajajaja :laugh: :laugh: :laugh:

DoEvents¡! :P