Копировать все с начала строки до последнего пробела

Вот так копировать все до первого пробела

s:=copy(s,1,pos(' ',s)-1);

Вот так копировать все до второго пробела

s:=copy(s,2,pos(' ',s)-1);

А вот как копировать все до последнего пробела с начала строки?

То есть строки вида:

str str str 123
str str 555
str 777

И на выходе результат:

str str str
str str
str

Ответы (1 шт):

Автор решения: Sergey Tatarincev

прошу прощения, лет сто уже живого delphi не видел. Вам нужна функция LastDelimiter (последнее вхождение), и в целом как-то так будет

uses SysUtils;
var
  p:integer;
  str: string;
  str2: string;
   
begin
 str:='111 222 333 444';
 p:=LastDelimiter(' ',str);
 str2:=copy(str,1,p-1);
 
 writeln(str2);
 
end.
→ Ссылка