B4A Library String Functions

Discussion in 'Additional libraries, classes and official updates' started by margret, Jul 22, 2011.

  1. margret

    margret Well-Known Member Licensed User

    Updated: 3/14/2014 - Version 1.05, This new version has 14 new functions/commands. Please report any issues. The new functions/commands are underlined and listed below in the updated docs.

    Updated: 9/19/2013 - Version 1.04, Corrected an error in the Mid() function when retrieving the last character.

    Updated: 8/28/2013 - Version 1.03, Added code to stop OutOfBounds error on the Mid Function. This would happen when an invalid index was passed to the function. Also corrected a bug that was in the DayOfMonth Function in versions prior to 1.02.

    Updated: 4/5/2013 Added new date functions and a simple Encrypt and Decrypt Function. NOTE: A few older Functions were renamed.

    StringFunctions use function names that are closer to the VB commands and may help beginners when they start programming in B4A. I wrote them for that reason when I started. These functions use to be in a code module but have now been converted to a Library. This has the new inline syntax and help as you start to type the command.

    Requires B4A 2.5 or Higher
    Copy the StringFunctions.jar and StringFunctions.xml to the Extra Libraries folder.


    Be sure to DIM the Lib object like Below. You can use any variable name in place of sf in the Example below.
    Code:
    Sub Globals
       
    Dim sf As StringFunctions
       sf.Initialize
    End Sub
    StringFunctions Version 1.05

    • AsciiCodes
      Displays a MessageBox with all Characters and their ASCII codes.
    • AddSpaces (HowMany As Int) As String
      Returns a string of spaces. The number returned is set by HowMany.
    • At (YourString As String, SearchFor As String))
      Returns the position of the SearchFor within YourString.
    • CurrentWeek (MyDate As String) As Int
      Returns the number of the current week, 1-52 from the date passed to MyDate.
    • DayOfMonth (MyDate As ) As Int
      Returns the day of the month like 1-31, from the date passed to MyDate.
    • Decrypt (YourText As String) As String
      Converts an encrypted string of text to readable format, no key is needed.
    • Empty (StringText As String) As Boolean
      Test to see if the string is empty and returns True if it is, otherwise returns False.
    • Encrypt (YourText As String) As String
      Converts a string of text to simple encryption, no Key is needed.
    • EraseData
      This will erase all data saved with the SaveData function stored in the
      temporary vault.
    • FileExist (PathAndFileName As String) As Boolean
      Returns True if the filename passed does exist, otherwise returns False.
      Be sure to include the path like:
      If FileExist("/mnt/sdcard/mydata.dat") Then MsgBox("Yes", "The Answer")
    • GetData (Key As Object) As Object
      Gets data from the temporary vault.
      EditText1.Text = SF.GetData("EnteredName")
      The Key is case sensitive.
    • InString (YourString As String, SearchFor As String))
      Returns the position of the SearchFor within YourString.
    • IsEmpty (StringText As String) As Boolean
      Test to see if the string is empty and returns True if it is, otherwise returns False.
    • Left (StringText As String, Length As Long) As String
      Returns the Left portion of a string with the number of characters passed
      in Length.
    • Len (StringText As String) As Long
      Returns the length of the string.
    • ListToString (YourList As List, Sorted As Boolean, Ascending As Boolean) As String
      Converts a List object to a String.
    • ListToStringArray (YourList As List, Sorted As Boolean, Ascending As Boolean) As String()
      Converts a List object to a String Array.
    • Lower (StringText As String) As String
      Returns the string converted to Lowercase characters.
    • Ltrim (StringText As String) As String
      Returns a new string with the leading spaces removed.
    • MB (Message As String)
      Same as MsgBox but only needs one parameter.
    • Mid (StringText As String, Start As Int, Length As Int) As String
      Returns the a new String for how ever many characters passed in Length from
      a starting position passed in Start.
      Example:
      Mid("This is a long line of text", 5, 2)
      In this example the function will Return: "is"
    • MidExtract (StringText As String, Start As String, EndAt As String) As String
      Used to extract text from a string between to other blocks of text.
      Ans = MidExtract("Dr. Jim Joe Brown", "Jim", "Brown") 'Returns: Joe
      Ans = MidExtract("Dr. Jim [Joe] Brown", "[", "]") 'Returns: Joe
    • MidS (StringText As String, StartAt As Int) As String
      Works like the Mid$ function in Visual Basic.
    • Month (MyDate As String) As Int
      Returns the number of the current month 1-12 as Int type, from the date passed to MyDate.
    • MonthName (MyDate As String) As String
      Returns the Name the current month as a String like January, etc., from the date passed to MyDate.
    • NewDate (DatePassed As String, HowManyDays As Int) As String
      Returns a new date adding or subtracting HowManyDays. HowManyDays can be positive or
      negative numbers.
    • NumOfDaysBetween (CurrentDate As String, OtherDate As String) As Int
      Returns the numbers of days passed between the two dates passed.
    • Pad (Text As String, PadWith As String, Length As Int, Post As Boolean) As String
      Used to pad a string with a selected character. If Post = True the padding will follow
      any text in the string, if Post = False, the padding will be before the text. Length is
      the total length for the padded string. PadWith is the selected character to use for the
      padding.
      SF.Pad("Jimmy Joe", "*", 20, True) 'Returns "Jimmy Joe***********"
    • Proper (StringText As String) As String
      Returns the string in proper format.
      Example:
      MyText = "jim joe brown"
      MyText = SF.Proper(Mytext)
      This function will return: "Jim Joe Brown"
    • Replicate (mChar As String, Times As Int) As String
      Repeats any character passed, a selected number of Times.
    • Right (StringText As String, Length As Long) As String
      Returns the Right portion of a string with the number of characters passed
      in Length.
    • RndChrGen (StringLength As Int, CharacterType As Int) As String
      Returns a string of ramdom characters with a length specified by StringLength. CharacterType tells
      the function what type of characters to return.
      CharacterType = 0 for Upper and Lower case
      CharacterType = 1 for Upper case only
      CharacterType = 2 for Lower case only
    • Rtrim (StringText As String) As String
      Returns a new string with the trailing spaces removed.
    • SaveData (Key As Object, Data As Object)
      Save data passed in a temporary file.
      SF.SaveData("ScreenTitle", MyVar)
      or
      SF.SaveData("EnteredName", EditText1.Text)
    • ScrInfo ( As Pect) As Int
      Returns information about the devices screen. You can pass these parameters:
      Pass "W" for Width
      Pass "H" for Height
      Pass "S" for Scale
      Pass "D" for DPI
      Call like: SF.ScrInfo("W")
    • SearchDate (Date1 As String, Date2 As String, DateRange As Int) As Boolean
      Returns True if the Date1 and the Date2 are within x Days(DateRange) of each other.
      Pass the dates as Strings.
      Example:
      SearchDate("03/01/2013", "02/15/2013", 30)
    • Split (CurrentString As String, Split_At_Delimiter As String) As List
      Returns a LIST of items from the string split at the Delimiter.
      EXAMPLE:
      Dim ANS As List
      ANS = SF.Split("This is a test string.", " ")
    • SplitGetWord (CurrentString As String, Split_At_Delimiter As String, GetElement As Int) As String
      Returns just the one element selected with GetElement from the string.
      EXAMPLE:
      ANS = SF.SplitGetWord("This is a test string.", " ", 2)
      In this example the function will Return: "is"
    • StrArraySort (StringArray() As String, Ascending As Boolean) As String()
      Used to sort a String Array. Sort will be in Ascending order if Ascending = True.
    • StringArrayToList (StringArray() As String, Sorted As Boolean, Ascending As Boolean) As List
      Converts a String Array to a List object.
    • StringToList (StringText As String, Sorted As Boolean, Ascending As Boolean) As List
      Convert a String to a List object. This will split the string between words.
    • Stuff (CurrentText As String, InsertInString As String, RemoveFromString As String) As String
      Used to replace text in a string with new text.
      Example:
      MyText = "I will tell you that joe is a good friend!"
      MyText = SF.Stuff(MyText, "Joe Brown", "joe")
      This function will return: "I will tell you that Joe Brown is a good friend!"
    • Today () As String
      Returns the devices date.
    • Trim (Text As String) As String
      Returns a new string with leading and trailing spaces removed.
    • Upper (StringText As String) As String
      Returns the string converted to Uppercase characters.
    • Val (StringText As String) As Double
      Returns the numerical value of a string. If the string contains now value it returns 0.
    • ValidDate (ChkDate As ) As Boolean
      Returns True if the date passed is a Valid date.
    • WeekDay (MyDate As String) As String
      Returns the number of the day of the week 1-7 as a String, from the date passed to MyDate.
    • WeekName (MyDate As String) As String
      Returns the name of the day of the week like Sunday, Monday, etc., from the date passed to MyDate.
    • Year (MyDate As String) As String
      Returns the year of the date passed in MyDate.
      Example:
      SF.Year("01/01/2013") returns "2013"
    • getSDCardPath () As String
      Returns external/physical SD Card directory. This function may not return the correct store
      on an Android OS above 4.1. This is due to changes made to the OS system in the newer versions.
      Returns "", if the store can not be read.
    • iif (Value1 As String, Value2 As String, Value3 As String) As String
      This is a single line if conditional test. If Value1 is true, Value2 is returned, otherwise
      Value3 will be returned. Works with strings and booleans.
      Example:
      MsgBox(iif("Bob"="Jim", "They are the same", "They are not the same"), "The Answer")
      or
      MyBoolean = iif(FirstTime = True, StartMyService = True, StartMyService = False)
     

    Attached Files:

    Last edited: Mar 21, 2014
  2. joedarock

    joedarock Member Licensed User

    Thank you, Margret! Very useful!

    Joe
     
  3. margret

    margret Well-Known Member Licensed User

    String Functions Update

    Hello and thank you. The first post and attachment has been updated. There are two new functions added. I added s.Empty() and s.iif(). The s.iif() is an Immediate If function. Can be very useful.

    Thanks,

    Margret
     
    demasi, Devan and sorheim like this.
  4. margret

    margret Well-Known Member Licensed User

    String Functions Demo

    Just Added These Three New Functions: July 28th, 2011 - 12.27am

    s.Space()
    s.RndChrGen() - Generate random characters to fill Edit.Text, etc.
    s.Exist()

    The updated file is attached to the first post.

    Thanks,

    Margret
     
    Devan likes this.
  5. domcoz

    domcoz Member Licensed User

    Split function

    Hi I am new user for basic4android exits split function like vba ?

    thanks very much

    Domenico
     
  6. margret

    margret Well-Known Member Licensed User

    Split function

    As far as I know it does not at this time. I will add that to my list of things to add to the string functions.

    Thanks,

    Margret
     
    Last edited: Jul 30, 2011
  7. moster67

    moster67 Expert Licensed User

    demasi likes this.
  8. margret

    margret Well-Known Member Licensed User

    Devan likes this.
  9. Smee

    Smee Well-Known Member Licensed User

    This all helps new android programmers Margret.

    Thanks
    :sign0098:

    Joe
     
  10. margret

    margret Well-Known Member Licensed User

    String Functions Update

    Hello All,

    *** Just Added These Three New Functions: August 25th, 2011 - 1.10pm

    s.Proper() – Example: converts “jerry smith” to “Jerry Smith”
    s.Lower()
    s.Upper()

    Download is attached to post #1

    Thanks,

    Margret
     
  11. cnicolapc

    cnicolapc Active Member Licensed User

    Woao!
    I was waiting to thank you very much.
    Nicola
     
  12. JesseW

    JesseW Active Member Licensed User

    Nice collection :)

    But I have a question: the Empty function...

    Code:
    Sub Empty(Text As StringAs String
       text = Trim(text)
       
    If text.Length < 1 Then
          
    Return True
       
    Else
          
    Return False
       
    End If   
    End Sub
    Since the function returns either TRUE or FALSE, shouldn't the sub definition be like this?

    Code:
    Sub Empty(Text As StringAs Boolean
    Also, its a matter of personal preference, but most programmers will prefix boolean functions with 'is', which would make isEmpty.

    Keep up the good work!
     
    Last edited: Aug 25, 2011
  13. margret

    margret Well-Known Member Licensed User

    Function Definition

    Thanks Jesse,

    I changed the definition to Boolean. It does work just fine but should of been Boolean. Good Catch!! :BangHead:

    Margret
     
    demasi likes this.
  14. JesseW

    JesseW Active Member Licensed User

    I sent you a PM...
     
  15. margret

    margret Well-Known Member Licensed User

    Over Sight on Definitions

    Thanks Jesse for pointing out the corrections in the definitions. It has been corrected and is now attached to post #1.

    Thanks,

    Margret
     
  16. rbsoft

    rbsoft Active Member Licensed User

    Thanks Margret,

    brings back a little more the VB/PB feeling. After all these function names are fixed in our minds for many years.

    I was just wondering about the Upper and Lower funtions. They remind me of the DBase and Clipper days. In Basic they were usually named UCase and LCase. I remember that I got them confused quite often in my QuickBasic and Dbase programs.

    Great job!

    Rolf
     
  17. margret

    margret Well-Known Member Licensed User

    Function Names

    I think you are right. I did the same with the Dbase & vb.

    Margret
     
  18. SPLatMan

    SPLatMan Member Licensed User

    Nice work, Margret. Helps ease an old VB-er into B4A, alias Jasic. I found it looking for a "solution" to space$() or string$().

    David Stonier-Gibson
    Samsung Galaxy ACE, 2.3.4
    http://splatco.com
     
  19. spillermarco

    spillermarco Member Licensed User

    String to bin

    there is the function string to bin?

    thanks

    Marco
     
  20. rbsoft

    rbsoft Active Member Licensed User

    Hi Margret,

    Not string to bin, but here is a vb like Split function you might want to add to your string functions.


    Code:
    Sub Split(str As String, Delimiter As String)As List 
       
    Dim t As List 
       t = 
    Regex.Split(Delimiter, str)
       
    Return t
    End Sub
    To call it one can use something like this:

    Code:
    Sub Button1_Click
       
    Dim a As List 
       a = s.Split(
    "Arthur,Ford,Zaphod"",")
       
    For i = 0 To a.Size - 1
          listview1.AddSingleLine(a.Get(i))
       
    Next
    End Sub
    Rolf
     
    Last edited: Dec 13, 2011
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice