Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Преобразование сроки в число

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

Преобразование сроки в число

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

{ **** 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 и FreePascal.


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


:: 2010-02-11 15:33:02 :: re:Преобразование сроки в число

пользователь: Shamil.

подскажите,пожалуйста,как будет выглядеть на delphi 2007 самый простой алгоритм преобразования строки в число без (использования StrToInt)


:: 2010-02-11 22:48:46 :: re:Преобразование сроки в число

пользователь: kan.

0. Итоговое число=0, множитель=1
1. Цикл, берем по символу из строки, с последнего символа.
2. определяем через case или ord, что за символ и переводим его в число.
3. Итоговое число = Итоговое число + число *множитель
4. множитель = множитель * 10
5. Повторяем п.1

в конце обработки строки результат в \"Итоговое число\"


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
19.04.2024 08:03:29/0.033658027648926/0