LifePlay-Revival/Source/LifePlay/LPStringCompat.cpp

28 lines
759 B
C++
Raw Normal View History

// Portage UE 5.5 - voir LPStringCompat.h
#include "LPStringCompat.h"
TArray<FString> ULPStringCompat::ParseIntoArray(const FString& SourceString, const FString& Delimiter, const bool CullEmptyStrings)
{
// Transcription de FString::ParseIntoArray, UE 4.27 (String.cpp, lignes 940-963).
TArray<FString> OutArray;
const TCHAR* Start = *SourceString;
const int32 DelimLength = Delimiter.Len();
if (Start && *Start != TEXT('\0') && DelimLength)
{
while (const TCHAR* At = FCString::Strstr(Start, *Delimiter))
{
if (!CullEmptyStrings || At - Start)
{
OutArray.Emplace(UE_PTRDIFF_TO_INT32(At - Start), Start);
}
Start = At + DelimLength;
}
if (!CullEmptyStrings || *Start)
{
OutArray.Emplace(Start);
}
}
return OutArray;
}