I can get the Split function to split on Chr(10) and/or Chr(13) on a single pass.
I can get the Split function to split on '<' and/or '>' on a single pass.
If I try to make it check all 4 on a single pass, only Chr(10) and/or Chr(13) are evaluated.
var
TempString: String; // tried with AnsiString, and didn't help
TempArray: TStringArray;
begin
TempString := 'abcdefgh<ijklmnopqr>stuvwxyxz' + chr(13) + '0123456789';
TempArray := TempString.Split('<>');
for I := Low(TempArray) to High(TempArray) do
WriteLn(I, ': ', TempArray[I]);
WriteLn('-------------', LINEENDING);
TempArray := TempString.Split(ansistring(Chr(10) + Chr(13)));
for I := Low(TempArray) to High(TempArray) do
WriteLn(I, ': ', TempArray[I], LINEENDING);
WriteLn('-------------', LINEENDING);
TempArray := TempString.Split(ansistring('<>' + Chr(10) + Chr(13)));
for I := Low(TempArray) to High(TempArray) do
WriteLn(I, ': ', TempArray[I]);
WriteLn('-------------', LINEENDING);
TempArray := TempString.Split(ansistring(Chr(60) + Chr(62) + Chr(10) + Chr(13)));
for I := Low(TempArray) to High(TempArray) do
WriteLn(I, ': ', TempArray[I], LINEENDING);
WriteLn('-------------', LINEENDING);
Only the first two work properly. The last two behave like the second one.
Versions in my sig...