Привет, гость!

Добро пожаловать на CVVBOARD - крупнейший теневой кардинг форум. У нас Вы сможете найти огромное множество статей по теме кардинга и заработка в интернете. Актуальная информация, новости даркнета, сервисы от проверенных продавцов, эксклюзивные, только рабочие схемы заработка, ежедневные раздачи - все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса это убережет Вас от мошенников. Обратите внимание, звание модератора не является гарантом в сделках!

Разделить строку по пробелам

KendrikLambard

Интересующийся
Регистрация
18 Окт 2020
Сообщения
34
Реакции
0
Здрасте, имеется строка

kernel yutty data1 data2 iop aosp 2.005 1



Как бы эту строку разбить после пробелов использую сейчас такую функцию:

function SplitText(const AText: String; const ADelimiter: string): TStringList;
var
sl: TStringList;
P, P1: PChar;
S: String;
begin
sl := TStringList.Create;
with sl do
begin
Clear;
BeginUpdate;
try
P := PChar(AText);
P1 := P;
while P^ <> #0 do
begin
if P^ = ADelimiter then
begin
SetString(S, P1, P - P1);
Add(S);
P1 := CharNext(P);
end;
P := CharNext(P);
end;
if P1^ <> #0 then
begin
SetString(S, P1, P - P1);
Add(S);
end;
finally
EndUpdate;
Result := sl;
end;
end;
end;


Но проблема в том что пробелы в данной строке разной длинны как не делаю всё равно либо там либо там не разделяется, сделал бы несколько раз вроде не проблемно, но не возможно заранее узнать какой длинны будут пробелы в строке ?

s:=splittext(s,' ');
s:=splittext(s,#13 );
Так же с char тоже не приносит желаемого результата
s:=splittext(s,char(9));
s:=splittext(s,char(32));
И ещё абсолютно не хотелось бы делать с циклом (for i:=)
 

Malanka

Опытный user
Регистрация
5 Сен 2019
Сообщения
147
Реакции
2
function split(inputText: String): TArray<string>;
begin
while Pos(' ', inputText) <> 0 do
inputText := inputText.Replace(' ', ' ', [rfReplaceAll]);
Result := inputText.Split([' ']);
end;

var
splittedString: TArray<string>;
I: Integer;
begin
splittedString := split('kernel yutty data1 data2 iop aosp 2.005 1');
for I := 0 to Length(splittedString) - 1 do
writeln(splittedString[I]);

Можно в целом сделать Split([' ']) и все, и в цикле при переборе массива проверять на пустоту, тогда функция выше не требуется.
 
Сверху Снизу