Results 1 to 6 of 6

Thread: vergelijking met comparestr in twijfel

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    vergelijking met comparestr in twijfel

    Een basic vraagje.

    Ik heb een lijst met bedrijven. Door middel van een zoekopdracht zoek ik naar bepaalde. Maar de zoekopdracht behelst maar een aantal karakter, die wel op 1 volgend zijn. Als ik met functie comparestr in een string zoekt (bijvoorbeeld SMIT in BOERS & CO ) kan krijg ik de waarde 17 terug. Dat snap ik dan niet. De zoekstring zal helemaal niet gevonden kunnen worden in de string. Er is geen relevantie.

    Met functie pos gaat het veel beter. Die geeft daadwerkelijk of de gevonden zoekstring op een bepaalde positie staat.

    Waarom werkt comparestr niet zoals ik zou verwachten?
    Delphi is great. Lazarus is more powerfull

  2. #2
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by jkuiper View Post
    Een basic vraagje.
    Dit is een Delphi forum.

    De CompareStr()-functie is er niet om te bepalen of een substring zich in een string bevindt (daar waar Pos() wel voor is), maar om de ordinale waarde van alle karakters binnen de twee strings te vergelijken.
    Wanneer < 0 dan is string 1 kleiner dan string 2, wanneer > 0 dan is string 1 groter dan string 2 en wanneer 0 dan zijn beide strings gelijk aan elkaar.
    TMemoryLeak.Create(Nil);

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Dan vind ik het een nutteloze functie
    Delphi is great. Lazarus is more powerfull

  4. #4
    Quote Originally Posted by jkuiper View Post
    Dan vind ik het een nutteloze functie
    Voor jouw doel misschien wel.
    Maar voor een sort-routine kan die toch verrekte handig zijn

  5. #5
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Als het sorteren voor mensen is, gebruik je natuurlijk StrCmpLogicalW

  6. #6
    Misschien ben je meer geholpen met functies als ContainsStr of ContainsText. De eerste is case sensitive (exacte match), de laatste niet (en vindt dus dat JKuiper matcht met jkuiper). Deze functies geven True of False terug om aan te geven of de zoekstring in de string zit, zonder verder de exacte positie terug te geven. Als je wel de exacte positie moet weten, dan gebruik je inderdaad Pos of één van z'n varianten.
    1+1=b

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

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