Преобразование сроки в числоDelphi , Синтаксис , Текст и СтрокиПреобразование сроки в число
Автор: Separator { **** UBPFD *********** by delphibase.endimus.com **** >> Преобразование сроки в число Преобразует строку в число, при этом удаля из строки все лишние символы Зависимости: нет Автор: Separator, vilgelm@mail.kz, ICQ:162770303, Алматы Copyright: Separator Дата: 7 мая 2003 г. ***************************************************** } function StringToNumber(const Value: string): string; var ResStr: string; i, j, L: integer; Ch: char; E, DS: boolean; begin Result := '0'; L := Length(Value); if L <> 0 then begin SetLength(ResStr, L); E := false; DS := false; j := 0; for i := 1 to L do begin Ch := Value[i]; case Ch of '0'..'9': begin Inc(j); ResStr[j] := Ch end; //'0'..'9': begin '.', ',': if (not DS) and (not E) and (i <> L) then begin DS := true; Ch := DecimalSeparator; if j = 0 then begin Inc(j); ResStr[j] := '0'; end; //if j = 0 then begin Inc(j); ResStr[j] := Ch end; //'.', ',': if (not DS) and (i <> L) then begin 'e', 'E': if (not E) and (i <> L) then begin E := true; Ch := 'E'; if j = 0 then begin Inc(j); ResStr[j] := '0'; end; //if j = 0 then begin Inc(j); ResStr[j] := Ch end //'.', ',': if (not DS) and (i <> L) then begin end //case Ch of end; //for i:= 1 to L do begin if j <> 0 then begin if ResStr[j] = 'E' then Dec(j); if ResStr[j] = DecimalSeparator then Dec(j); SetLength(ResStr, j); Result := ResStr end //if j <> 0 then begin end //if L <> 0 then begin end; Пример использования: Edit1.Text = ',...,fgftgtr656,.567erdf..5,,632' Edit2.Text := StringToNumber(Edit1.Text); Edit2.Text = 0, 656567E5632 Перевод контента на русский язык: В коде Delphi функция
Пример использования функции:
Вывод в этом примере будет:
Код можно улучшить добавлением более полного обработки ошибок и поддержки других форматов чисел. Кроме того, он предполагает, что входная строка содержит только валидные символы; если в ней присутствуют недопустимые символы, функция может производить неправильные результаты. Вот альтернативное решение с использованием регулярных выражений (RegEx) в Delphi:
Функция использует класс Обратите внимание, что подход с RegEx может быть более гибким и точным, чем оригинальный код, но он требует включения units Функция StringToNumber преобразует строку в число, удаля из нее все лишние символы и оставляя только цифры, десятичную точку и знак э指数а. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |