C#: Split
String into Words
In C# kann man einen langen Text in einzelne Worte
aufteilen, indem man den String-Text mit der Methode string.Split(..) in ein Array mit String-Werten umwandelt.
string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );
|
Anschließend kann man das String-Array durchlaufen und die
einzelnen Werte entnehmen.
Durch den Parameter StringSplitOptions.RemoveEmptyEntries wird
verhindert, dass Null-Werte in das Array geschrieben werden.
Das folgende C# Code Beispiel zeige, wie ein Filter-Text in
einem Suchfeld bei Webseiten aufgeteilt wird in einen Filter-String.
Dieser String ist
zusammengefasst die SQL-Where Bedingung, welche SQL-Felder filtert.
//--<
Split Text to Words >--
string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );
for (int iWord = 0; iWord <
arrWords.Length; iWord++)
{
string sWord = arrWords[iWord];
sFilter = sFilter + " AND [Path] LIKE '%" +
sWord + "%'";
}
|
Beispiel im Photo Explorer, wo verschiedene Texte gesucht
werden anhand kombinierter Worte, die durch ein Leerzeichen getrennt sind.
Die SQL Bedingung wird dabei mit AND verknüpft.
Komplettes C# Split Code Bespiel mit überleitung in SQL
String einer SQLite Datenbank
string sFilter = "";
//--<
Split Text to Words >--
string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );
for (int iWord = 0; iWord <
arrWords.Length; iWord++)
{
string sWord = arrWords[iWord];
sFilter = sFilter + " AND [Path] LIKE '%" +
sWord + "%'";
}
//<
replace 1 >
System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(" AND ",
System.Text.RegularExpressions.RegexOptions.IgnoreCase);
sFilter
= regEx.Replace(sFilter, " ",1, 0);
//</
replace 1 >
//--</
Split Text to Words >--
//<
get records >
string sSQL = @"SELECT [Foldername],
[Path] FROM Folders WHERE " + sFilter + " ORDER BY
Path";
ISQLiteStatement recFolders = clsDB.get_Recordset(sSQL);
//</ get records >
|