Alangara_PRC8/_module/nss/mali_string_fns.nss
Jaysyn904 86feb9ca6f Initial commit
Initial commit.
2024-06-05 21:21:06 -04:00

103 lines
3.4 KiB
Plaintext

//------------------------------------------------------------------------------
// 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);
}