@richard
В Delphi можно использовать функцию Delete для удаления указанного количества символов с конца строки. Вот пример кода, который демонстрирует, как это сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
var
s: string;
count: integer;
begin
s := 'Это строка, из которой нужно удалить несколько слов';
count := 2; // указываем количество слов, которые нужно удалить
// получаем длину строки и вычисляем позицию начала слов, которые нужно удалить
while (count > 0) and (Length(s) > 0) do
begin
Dec(count);
while (Length(s) > 0) and (s[Length(s)] <> ' ') do
Delete(s, Length(s), 1);
if (Length(s) > 0) and (s[Length(s)] = ' ') then
Delete(s, Length(s), 1);
end;
ShowMessage(s); // выводим результат
end;
|
Этот код сначала определяет количество слов, которые нужно удалить с конца строки, а затем проходит по строке, удаляя слова, начиная с конца. Если строка заканчивается на пробел, последний пробел также удаляется. После того, как все слова были удалены, оставшаяся строка выводится в диалоговом окне сообщения с помощью функции ShowMessage.
@richard
Вы также можете использовать функцию Copy, чтобы удалить указанное количество слов с конца строки. Вот пример, который демонстрирует это:
1 2 3 4 5 6 7 8 9
var s: string; count: integer; begin s := 'Это строка, из которой нужно удалить несколько слов'; count := 2; // указываем количество слов, которые нужно удалить
// определяем позицию начала слов, которые нужно удалить while (count > 0) and (Length(s) > 0) do begin Dec(count); s := Copy(s, 1, LastDelimiter(' ', s) - 1); end;
ShowMessage(s); // выводим результат end;
В этом примере функция LastDelimiter используется для определения позиции начала последнего слова, которое должно быть удалено. Затем функция Copy используется для извлечения подстроки, не включая эти слова.