generated from Jaysyn/ModuleTemplate
Initial Commit
Initial Commit.
This commit is contained in:
102
_module/nss/mali_string_fns.nss
Normal file
102
_module/nss/mali_string_fns.nss
Normal file
@@ -0,0 +1,102 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// String functions include
|
||||
// by Malishara
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Returns the first word in sString, delimited by sDelimiter
|
||||
//------------------------------------------------------------------------------
|
||||
string FirstWord(string sString, string sDelimiter = " ");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Returns sString, starting with the second word, delimited by sDelimiter
|
||||
//------------------------------------------------------------------------------
|
||||
string RestWords(string sString, string sDelimiter = " ");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Replaces all occurences of sSearch within sString with sReplace
|
||||
//------------------------------------------------------------------------------
|
||||
string SearchAndReplace(string sString, string sSearch, string sReplace);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Return the nth word of sString, delimited by sDelimiter
|
||||
//------------------------------------------------------------------------------
|
||||
string FetchWord(string sString, string sDelimiter, int n);
|
||||
|
||||
|
||||
string FirstWord(string sString, string sDelimiter = " ")
|
||||
{ if (FindSubString(sString, sDelimiter) == -1)
|
||||
{ return sString; }
|
||||
else
|
||||
{ return GetStringLeft(sString, FindSubString(sString, sDelimiter)); }
|
||||
}
|
||||
|
||||
string RestWords(string sString, string sDelimiter = " ")
|
||||
{ if (FindSubString(sString, sDelimiter) == -1)
|
||||
{ return ""; }
|
||||
else
|
||||
{ return GetStringRight(sString, GetStringLength(sString) - FindSubString(sString, sDelimiter) - GetStringLength(sDelimiter)); }
|
||||
}
|
||||
|
||||
string SearchAndReplace(string sString, string sSearch, string sReplace)
|
||||
{ string sNewString = "";
|
||||
int iOffset = FindSubString(sString, sSearch);
|
||||
while (iOffset != -1)
|
||||
{ sNewString += FirstWord(sString, sSearch) + sReplace;
|
||||
sString = RestWords(sString, sSearch);
|
||||
iOffset = FindSubString(sString, sSearch);
|
||||
}
|
||||
return sNewString + sString;
|
||||
}
|
||||
|
||||
string FetchWord(string sString, string sDelimiter, int n)
|
||||
{ int iLoop = 0;
|
||||
string sWord = "";
|
||||
while (iLoop < n)
|
||||
{ sWord = FirstWord(sString, sDelimiter);
|
||||
sString = RestWords(sString, sDelimiter);
|
||||
iLoop++;
|
||||
}
|
||||
return sWord;
|
||||
}
|
||||
|
||||
int CountWords(string sString, string sDelimiter)
|
||||
{ int iCount = 0;
|
||||
int iPos = 0;
|
||||
|
||||
while (iPos != -1)
|
||||
{ iPos = FindSubString(sString, sDelimiter, iPos);
|
||||
if (iPos != -1)
|
||||
{ iCount++;
|
||||
iPos = iPos + GetStringLength(sDelimiter);
|
||||
}
|
||||
}
|
||||
|
||||
return iCount;
|
||||
}
|
||||
|
||||
int FindWord(string sString, string sSubString, string sDelimiter)
|
||||
{ int iPos = FindSubString(sDelimiter + sString + sDelimiter, sDelimiter + sSubString + sDelimiter);
|
||||
if (iPos == -1)
|
||||
{ return FALSE; }
|
||||
|
||||
iPos = iPos - GetStringLength(sDelimiter);
|
||||
sString = GetSubString(sString, 0, iPos);
|
||||
|
||||
return CountWords(sString, sDelimiter);
|
||||
}
|
||||
|
||||
string LastWord(string sString, string sDelimiter)
|
||||
{ int iDelLen = GetStringLength(sDelimiter);
|
||||
int iPos = GetStringLength(sString) - iDelLen;
|
||||
|
||||
while ((iPos > 0) && (GetSubString(sString, iPos, iDelLen) != sDelimiter))
|
||||
{ iPos--; }
|
||||
|
||||
if (GetSubString(sString, iPos, iDelLen) == sDelimiter)
|
||||
{ iPos += iDelLen; }
|
||||
|
||||
return GetStringRight(sString, GetStringLength(sString) - iPos);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user