Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Очистка строки (символьное значение числа) от пробелов, нулей и точки

Delphi , Синтаксис , Текст и Строки



Автор: Виталий
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Функция возращает строку очищенную от символов: пробел, ноль, точка.

Зависимости: нет
Автор:       Виталий, center_sapr@mnogo.ru, Львов
Copyright:   Witek
Дата:        26 апреля 2002 г.
***************************************************** }

unit Unit2;

interface

function StrFl(st: string): string;

implementation

function StrFl(st: string): string;
label
  p1, p2, p3;
var
  poz: Byte;
  k: integer;
  stt: string;
begin
  k := Length(st);
  if k <= 1 then
    goto p2;
  p1:
  stt := Copy(st, 1, 1); {Очистка от пробелов}
  if stt = ' ' then
  begin
    st := Copy(st, 2, k - 1);
    k := k - 1;
    goto p1;
  end;
  stt := Copy(st, k, 1);
  if stt = ' ' then
  begin
    st := Copy(st, 1, k - 1);
    k := k - 1;
    goto p1;
  end;
  p3:
  poz := Pos('.', st); {Очистка от нулей}
  if poz = 0 then
    goto p2;
  stt := Copy(st, k, 1);
  if stt = '0' then
  begin
    st := Copy(st, 1, k - 1);
    k := k - 1;
    goto p3;
  end;
  if stt = '.' then {Очистка от точки}
  begin
    st := Copy(st, 1, k - 1);
  end;
  p2:
  StrFl := st;
end;

end.

Пример результатов:

5.000  -> 5
5.001  -> 5.001
05.100 -> 05.1

Программа на Delphi!

Вот разбор кода:

Функция StrFl принимает строку в качестве входного параметра и возвращает очищенную версию этой строки, удаляя пробелы, нули (0) и точки (.).

Имплементация использует комбинацию функций Copy и Pos для достижения этого. Вот как это работает:

  1. Функция проверяет, является ли длина входной строки менее или равна 1. Если так, она прыгает к метке p2, что означает, что очистки неNeeded.
  2. Затем она входит в цикл, который повторяется, пока нет более пробелов в начале или конце строки. Это делается проверкой, является ли первый символ пробелом (stt = ' ') и если последний символ также пробел. Если так, она удаляет эти символы с помощью Copy и уменьшает длину k.
  3. Далее она проверяет нули (0) в строке. Она использует Pos для поиска позиции точки (.), а затем повторяется, пока нет более нулей перед или после точки.
  4. Наконец, если найдена точка, она просто удаляет последний символ с помощью Copy.
  5. Функция возвращает очищенную строку.

Пример результата:

  • Вход: "5.000" -> Выход: "5"
  • Вход: "5.001" -> Выход: "5.001"
  • Вход: "05.100" -> Выход: "05.1"

В целом, это простой но эффективный способ очистки строк в Delphi.

Вот несколько предложений:

  • Вместо использования меток (p1, p2, p3)consider using a loop or a recursive function call.
  • Вы также можете использовать регулярные выражения (например, TRegEx) для упрощения процесса очистки.
  • Если вы работаете с числами, вам может быть полезно использовать встроенные функции и типы Delphi (например, Int64, Float64).

Надеюсь это поможет!

Очистка строки от пробелов, нулей и точки - функция, которая возвращает строку, очищенную от этих символов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Текст и Строки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:12:37/0.003371000289917/0