Gambas/String Manipulation

      String Concatenation

      The concatenation operator represented by an ampersand symbol is used to join two strings together:

       DIM bestclub AS String
       bestclub = "Liverpool" & " Football Club"    ' Liverpool Football Club
      

      The addition operator cannot be used to concatenate strings

      In gambas, unlike traditional basic, the plus symbol cannot be used as concatenation operator. If an attempt is made to use a plus symbol for this purpose, a type mismatch error will occur when an attempt is made to run the program:

       ' This does not work in gambas
       PRINT "I have 3 cats" + " and 2 dogs"    ' You cannot concatenate strings by using a plus symbol
      

      Concatenation combination assignment operator

      The concatenation combination assignment operator represented by a andequals symbol, can also be used to concatenate strings:

       DIM breakfast AS String
       breakfast = "bacon"
       breakfast &= " and eggs"    ' breakfast = breakfast & " and eggs" (using the andequals symbol)
      
      ↑Jump back a section

      Search and Replace

      hello i have made a try to search in a text file -two function : 1- search by line and column 2-search by pos

      -first function returns an array with results it will be for example like this ["1,12" , "2,1"] , the first element is the line the second is the column

      -second function returns also an array but single one ex:[1,2,45,455] every element is the string pos


      here you are ! :

      AUTHOR: abom
      MAIL: abom@linuxac.org
       
      ----
       
      STATIC PUBLIC SUB searchfile(filename AS String, strser AS String) AS String[] 
       
        DIM icounter AS Integer, fn AS stream, ln AS String, wpos AS Integer, rstr AS NEW String[]
        DIM spos AS Integer
        icounter = 0
       
        IF Exist(filename) THEN 
       
           fn = OPEN filename FOR READ
       
            WHILE NOT Eof(fn) 
       
              LINE INPUT #fn, ln
              icounter = icounter + 1
                IF strser = "" THEN RETURN 
                spos = 0
                wpos = 0
                DO
                 wpos = InStr(ln, strser, spos, gb.Text) 
       
                IF wpos <> 0 THEN 
                   spos = wpos + Len(strser)
                   rstr.add(icounter & "," & wpos) 
                END IF
                LOOP UNTIL (wpos = 0) 
            WEND
       
        END IF
        RETURN rstr 
       
      END
      ----
      STATIC PUBLIC SUB searchfilebypos(filename AS String, strser AS String) AS String[]
       
        DIM icounter AS Integer, fn AS stream, txt AS String, wpos AS Integer, rstr AS NEW String[]
        DIM spos AS Integer
        icounter = 0
       
        IF Exist(filename) THEN 
             wpos = 0 
             spos = 0
       
             txt = file.Load(filename)
       
             IF strser = "" THEN RETURN 
             DO  
       
                 wpos = InStr(txt, strser, spos, gb.Text) 
       
                IF wpos <> 0 THEN 
                   spos = wpos + Len(strser)  
                   rstr.add(wpos) 
                END IF
       
             LOOP UNTIL (wpos = 0)
        END IF
        RETURN rstr 
       
      END
      
      ↑Jump back a section
      Last modified on 6 March 2011, at 04:56