... databox.text (aus Beispielcode unten) enthält eine große Liste von kombinierten Wörtern (Domänennamen), die zuvor im Programm aufgefüllt wurden. Es gibt 1 pro Zeile. In diesem Beispiel sieht es zunächst wie:Visual Basic-Suchtext für Zeichenfolge, Anzeige der Ergebnisse mit Propercase
thepeople.com
truehistory.com
workhorse.com
whatever.com
neverchange.com
...
Der folgende Code unten den Text innerhalb databox spart bis tlistfiltered.txt und sucht dann tlistfiltered.txt alle Zeilen abzurufen, die eines der Elemente in der Liste enthalten „arr() ", und füllt dann listview (lv) mit den Ergebnissen. Das funktioniert ganz gut, aber die Ergebnisse wie folgt aussehen:
thepeople.com
truehistory.com
neverchange.com
...
aber was ich brauche, ist die „gefunden string“ (von arr() Liste Proper Fall zu sein, so das Ergebnis wäre:
thePeople.com
trueHistory.com
neverChange.com
Hier
ist der Code ....
Dim s As String = databox.Text
File.WriteAllText(dloc & "tlistfiltered.txt", s)
databox.Clear()
Dim text2() As String = System.IO.File.ReadAllLines(dloc & "tlistfiltered.txt")
Dim arr() As String = {"people", "history", "change"}
For index1 = 0 To arr.GetUpperBound(0)
Dim YesLines() As String = Array.FindAll(text2, Function(str As String)
Return str.Contains(arr(index1))
End Function).ToArray
databox.Visible = True
For index2 = 0 To YesLines.GetUpperBound(0)
Dim match As String = (YesLines(index2)) & vbCrLf
databox.AppendText(match)
Next
Next
s = databox.Text
File.WriteAllText(dloc & "tlistfilteredfinal.txt", s)
databox.Clear()
domains = (From line In File.ReadAllLines(dloc & "tlistfilteredfinal.txt") Select New ListViewItem(line.Split)).ToArray
lv.Items.Clear()
My.Computer.FileSystem.DeleteFile(dloc & "tlistfiltered.txt")
My.Computer.FileSystem.DeleteFile(dloc & "tlistfilteredfinal.txt")
BackgroundWorker1.RunWorkerAsync()
End Sub
gibt es eine Möglichkeit, dies im laufenden Betrieb zu tun? ich habe versucht StrConv etc, aber es wird nur die gesamte Linie, um ein ordnungsgemäßen Fall konvertieren. ich will nur die " gefunden "Wort innerhalb der Linie zu con sein .... umgerechnet
edit:
nach @soohoonigan ‚s Antwort zu sehen, herausgegeben i
databox.Visible = True
For index2 = 0 To YesLines.GetUpperBound(0)
Dim match As String = (YesLines(index2)) & vbCrLf
databox.AppendText(match)
Next
Next
dazu:
databox.Visible = True
For index2 = 0 To YesLines.GetUpperBound(0)
Dim match As String = (YesLines(index2)) & vbCrLf
Dim myTI As System.Globalization.TextInfo = New System.Globalization.CultureInfo("en-US", False).TextInfo
If match.Contains(arr(index1)) Then
match = match.Replace(arr(index1), myTI.ToTitleCase(arr(index1)))
'StrConv(match, vbProperCase)
databox.AppendText(match)
End If
Next
und bekam das gewünschte Ergebnis!
Dank!Ich habe den Code bearbeitet: – t4nk