Feedback

C# - Fundstelle eines Suchbegriffs markieren

Veröffentlicht von am 19.08.2009
(3 Bewertungen)
Hebt den Suchbegriff an der Funstelle hervor, ähnlich den Suchmaschinen. Die Anzahl der Zeichen vor und nach der Fundstellen kann angegeben werden.

Beispiel:
Suche nach "nur" im Text "Ich bin nur ein kleiner Text."

Ergebnis (4 Zeichen vor und nach der Funsstelle):
...bin nur ein...
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

// 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;
        }
    }
Abgelegt unter suche, string, fundstelle, hervorheben, markieren.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!