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