Как удалить указанное количество слов с конца строки в delphi?

Пользователь

от richard , в категории: Другие , 2 года назад

Как удалить указанное количество слов с конца строки в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от adrien.waters , 2 года назад

@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.

Пользователь

от vladimir , год назад

@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 используется для извлечения подстроки, не включая эти слова.