xHarbour Reference Documentation > Function Reference xHarbour Developers Network  

AtSkipStrings()

Locates the position of a substring within a character string.

Syntax

AtSkipStrings(( <cSearch>, <cString> ) --> nPos

Arguments

<cSearch>
<cSearch> is the substring to search for.
<cString>
<cString> is the searched character string.

Return

The function returns a numeric value which is the position in <cString> where <cSubString> is found. The return value is zero when <cSubString> is not found.

Description

The function AtSkipStrings() searches the string <cString> from left to right for the character string <cSearch>. It works similar to the At() function, but skips all quoted parts of <cString>. A quoted part is recognized when it is enclosed in a pair of single or double quotes, or within opening and closing square brackets.

Info

See also:At(), HB_RegEx(), IN, Left(), RAt(), Right(), StrTran(), SubStr()
Category: Character functions , xHarbour extensions
Source:rtl\at.c
LIB:xhb.lib
DLL:xhbdll.dll

Example

// The example compares results of AtSkipStrings() with At()

   PROCEDURE Main
      LOCAL cString1 := '"abc"12abc'
      LOCAL cString2 := "123;'xHarbour;compiler';200702"
      LOCAL nPos

      ? At( "abc", cString1 )             // result: 2

      ? AtSkipSTrings( "abc", cString1 )  // result: 8

      cString1 := cString2

      DO WHILE .NOT. Empty( cString1 )
         nPos := At( ";", cString1 )
         IF nPos > 0
            ? SubStr( cString1, 1, nPos-1 )
            cString1 := SubStr( cString1, nPos+1 )
         ELSE
            ? cString1
            cString1 := ""
         ENDIF
      ENDDO
      ** output
      // 123
      // 'xHarbour
      // compiler'
      // 200702


      DO WHILE .NOT. Empty( cString2 )
         nPos := AtSkipSTrings( ";", cString2 )
         IF nPos > 0
            ? SubStr( cString2, 1, nPos-1 )
            cString2 := SubStr( cString2, nPos+1 )
         ELSE
            ? cString2
            cString2 := ""
         ENDIF
      ENDDO

      ** output
      // 123
      // 'xHarbour;compiler'
      // 200702
   RETURN

Copyright © 2006-2007 xHarbour.com Inc. All rights reserved.
http://www.xHarbour.com
Created by docmaker.exe