1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// Beispielaufruf:
// Label1.Text = MarkReference(TextBox1.Text, TextBox2.Text, 4);
public static string MarkReference(string text, string search, int num)
{
string referenceText = text.Trim();
string searchWord = search.Trim();
string moreLeftTag = "...", moreRightTag = "...";
int searchWordStartPos = referenceText.IndexOf(searchWord,
StringComparison.CurrentCultureIgnoreCase);
if (searchWordStartPos >= 0)
{
int referenceTextLength = referenceText.Length;
int searchWordLength = searchWord.Length;
int resultLeftLength = num, resultRightLength = num;
int resultLeftStartPos = searchWordStartPos - resultLeftLength;
int resultRightStartPos = searchWordStartPos + searchWordLength;
if (resultLeftStartPos < 0)
{
resultLeftLength = resultLeftLength + resultLeftStartPos;
resultLeftStartPos = 0;
moreLeftTag = "";
}
if ((resultRightStartPos + resultRightLength) > referenceTextLength)
{
resultRightLength = referenceTextLength - resultRightStartPos;
moreRightTag = "";
}
return String.Format("{0}{1}<span id=\"highlight\">{2}</span>{3}{4}",
moreLeftTag,
referenceText.Substring(resultLeftStartPos, resultLeftLength),
referenceText.Substring(searchWordStartPos, searchWordLength),
referenceText.Substring(resultRightStartPos, resultRightLength),
moreRightTag);
}
else
{
return null;
}
}
|