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

Получить числа из строки

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

Получить числа из строки


type 
  TCharSet = set of Char; 

function StripNonConforming(const S: string; 
  const ValidChars: TCharSet): string; 
var 
  DestI: Integer; 
  SourceI: Integer; 
begin 
  SetLength(Result, Length(S)); 
  DestI := 0; 
  for SourceI := 1 to Length(S) do 
    if S[SourceI] in ValidChars then 
    begin 
      Inc(DestI); 
      Result[DestI] := S[SourceI] 
    end; 
  SetLength(Result, DestI) 
end; 

function StripNonNumeric(const S: string): string; 
begin 
  Result := StripNonConforming(S, ['0'..'9']) 
end;

Here is a translation of the provided text into Russian:

Предоставленный код на языке Pascal предназначен для удаления несовместимых символов из заданного входного строки. Функция StripNonConforming принимает два параметра: входную строку и множество допустимых символов. Она проходит по входной строке, и если текущий символ находится в множестве допустимых символов, она включает этот символ в выходную строку.

Функция StripNonNumeric является примером использования StripNonConforming, где она удаляет все нецифровые символы из входной строки, установив множество допустимых символов в цифры '0' до '9'.

Вот как можно улучшить этот код:

  1. Обработка ошибок: Код не обрабатывает случаи, когда входная строка null или пустая. Вам может потребоваться добавить проверки этих условий в начале каждой функции.

  2. Организация кода: Функция StripNonConforming могла быть сделана более универсальной, если бы вызывающий программист мог указать буфер назначения вместо динамического увеличения результата. Это также позволило бы более эффективному обрабатыванию в случаях, когда входная строка очень большая.

  3. Функциональность: Если вы хотите удалить несовместимые символы из обоих концов строки, вам может потребоваться добавить эту функциональность в функцию StripNonConforming или создать новую функцию, которая делает это.

Вот альтернативное решение с использованием регулярных выражений:

function StripNonNumeric(const S: string): string;
begin
  Result := TRegExpr.QuoteMeta('^\D+|\D+$');
  Result := RegExReplace(S, Result, '');
end;

В этом коде используется класс TRegExpr из единицы RegExpr, чтобы заменить все нецифровые символы в начале и конце входной строки на пустую строку. Регулярное выражение ^\D+|\D+$ matches one or more non-numeric characters at the beginning or end of the string, effectively stripping them away.

Данная статья описывает функции на языке Delphi для удаления из строки нечисленных символов и оставления только цифр.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:22:25/0.0053279399871826/1