¿Alguien me puede recordar como se hacia esto?
Olvidé que método se usa para esto xD
Dim STR = "abc"
If Cosa.Contains(STR) Then ...
' Quiero que busque todas las variantes:
' Abc
' ABc
' ABC
' aBC
' abC
' etc...
hay varias formas y algoritmos sobre todo recursivos, pero aca paso una bastante reducida.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim vLetras As String = "abcABC" ' Letras que se van a usar
Dim vSize As Integer = 3 ' Longitud del resultado
Dim vLista As IEnumerable(Of String) = vLetras.Select(Function(x) x.ToString())
For i As Integer = 0 To vSize - 2
vLista = vLista.SelectMany(Function(x) vLetras, Function(x, y) x + y)
Next
For Each t As String In vLista
Debug.WriteLine(t)
Next
End Sub
End Class
Gracias, pero no me aclaro, ¿Como puedo adaptarla a mis necesidades?
Tengo una "Search bar" que debe buscar resultados en los archivos de texto de "My.Resources", y mostrar cada resultado encontrado en el listview.
Lo único que quiero es hacer el texto a buscar en modo "Ignorecase" xD
(http://img7.imageshack.us/img7/228/prtscrcapturern.jpg)
Al pulsar el botón "Buscar":
For Each Dict As DictionaryEntry In ResourceSet.OfType(Of Object)()
If TypeOf (Dict.Value) Is String Then
Find_Delimited_Text(My.Resources.ResourceManager.GetObject(Dict.Key), ";", TextBox_Buscar.Text)
Find_Delimited_Text sub:
Public Sub Find_Delimited_Text(ByVal TextFile As String, ByVal TextDelimiter As String, ByVal PatternSTR As String)
Dim vLetras As String = PatternSTR
Dim vSize As Integer = PatternSTR.Length ' ¿?
Dim vLista As IEnumerable(Of String) = vLetras.Select(Function(x) x.ToString())
For i As Integer = 0 To vSize - 2
vLista = vLista.SelectMany(Function(x) vLetras, Function(x, y) x + y)
Next
For Each t As String In vLista
MsgBox(t)
Next
Dim Listview_Row_STR(4) As String
Dim Listview_Item = New ListViewItem(Listview_Row_STR)
Dim TextDelimited As String()
Dim delimiter As String = TextDelimiter
Dim fileContent As String = TextFile
Dim stringStream As New System.IO.StringReader(fileContent)
Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser(stringStream)
parser.SetDelimiters(TextDelimiter)
While Not parser.EndOfData
TextDelimited = parser.ReadFields()
If TextDelimited(0).Contains(PatternSTR) Then
field_find_number += 1
Listview_Row_STR(0) = field_find_number
Listview_Row_STR(1) = TextDelimited(0)
Listview_Row_STR(2) = TextDelimited(1)
Listview_Row_STR(3) = TextDelimited(2)
Listview_Item = New ListViewItem(Listview_Row_STR)
ListView.Items.Add(Listview_Item)
End If
End While
End Using
End Sub
EDITO:
Bueno, creo que convirtiendo los dos strings a lowercase da menos vueltas y funciona.
If TextDelimited(0).ToLower.Contains(PatternSTR.ToLower) Then
Saludos!