Results 1 to 6 of 6

Thread: Searching longer keywords first then eventually the shorter once

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Nov 2015
    Posts
    114

    Searching longer keywords first then eventually the shorter once

    I am attempting to find a way to search for long keyword tails first before searching for the shorter once in VB.NET. My research on Google never offered a way to search for words like that. This is for my grammar checker database that has numerous amounts of words that should do the replacements in a sequence. If you were to change the shorter once first, then one would not find a way of eliminating the errors that are left by the shorter once.... The shorter once are mainly meant for enhancing the grammar. I have just found a way of eliminating the stackoverflow on my code so that will not be an issue. I only mention this because there are those who are familiar with my code! If one were to offer a solution, would it work on a context menu? I am only mentioning this because, this is the only part that needs restructuring.

    Code:
    checkWord = replacements.Keys.ElementAt(nextCheckIndex)
            foundIndex = RichTextBox1.Find(checkWord, startZ, RichTextBox1.TextLength, RichTextBoxFinds.WholeWord)
    Last edited by nqioweryuadfge; May 25th, 2016 at 10:18 AM. Reason: Grammar

  2. #2
    eXtreme Programmer .paul.'s Avatar
    Join Date
    May 2007
    Location
    Chelmsford UK
    Posts
    25,464

    Re: Searching longer keywords first then eventually the shorter once

    What is replacements? Assuming it's a Dictionary of some kind:

    Code:
    Dim replacements As New Dictionary(Of String, String)
    replacements.Add("aaa", "")
    replacements.Add("aaaaa", "")
    replacements.Add("a", "")
    replacements.Add("aaaa", "")
    replacements.Add("aa", "")
    
    Dim orderedList As List(Of String) = replacements.Keys.Cast(Of String).OrderByDescending(Function(s) s.Length).ToList

  3. #3

    Thread Starter
    Lively Member
    Join Date
    Nov 2015
    Posts
    114

    Cool Re: Searching longer keywords first then eventually the shorter once

    Quote Originally Posted by .paul. View Post
    What is replacements? Assuming it's a Dictionary of some kind:

    Code:
    Dim replacements As New Dictionary(Of String, String)
    replacements.Add("aaa", "")
    replacements.Add("aaaaa", "")
    replacements.Add("a", "")
    replacements.Add("aaaa", "")
    replacements.Add("aa", "")
    
    Dim orderedList As List(Of String) = replacements.Keys.Cast(Of String).OrderByDescending(Function(s) s.Length).ToList
    Hi, thanks for your help and reply!
    What if its a dictionary of:

    Private replacements As New Dictionary(Of String, List(Of String)). How would I implement that to allow me to search Long strings first, then eventually the shorter ones?

  4. #4

    Thread Starter
    Lively Member
    Join Date
    Nov 2015
    Posts
    114

    Re: Searching longer keywords first then eventually the shorter once

    Replacements is a dictionary of (Of String, List(Of String))

  5. #5

    Thread Starter
    Lively Member
    Join Date
    Nov 2015
    Posts
    114

    Re: Searching longer keywords first then eventually the shorter once

    How would one implement it in a RichTextBox search like this one:

    Code:
    checkWord = replacements.Keys.ElementAt(nextCheckIndex)
            foundIndex = RichTextBox1.Find(checkWord, startZ, RichTextBox1.TextLength, RichTextBoxFinds.WholeWord)

  6. #6

    Thread Starter
    Lively Member
    Join Date
    Nov 2015
    Posts
    114

    Cool Re: Searching longer keywords first then eventually the shorter once

    I tested your code is very slow! Plus, my dictionary is sorted so there is no need to sort it again! Anyway to make it work in my scenario?

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width