103 lines
3.4 KiB
Plaintext
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);
|
|
}
|
|
|