Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 670

•  TDictionary Custom Sort  5 800

•  Fast Watermark Sources  5 603

•  3D Designer  8 218

•  Sik Screen Capture  5 913

•  Patch Maker  6 388

•  Айболит (remote control)  6 378

•  ListBox Drag & Drop  5 237

•  Доска для игры Реверси  94 551

•  Графические эффекты  6 570

•  Рисование по маске  5 644

•  Перетаскивание изображений  4 760

•  Canvas Drawing  5 135

•  Рисование Луны  4 863

•  Поворот изображения  4 411

•  Рисование стержней  3 116

•  Paint on Shape  2 360

•  Генератор кроссвордов  3 228

•  Головоломка Paletto  2 551

•  Теорема Монжа об окружностях  3 328

•  Пазл Numbrix  2 200

•  Заборы и коммивояжеры  2 849

•  Игра HIP  1 820

•  Игра Go (Го)  1 740

•  Симулятор лифта  2 072

•  Программа укладки плитки  1 798

•  Генератор лабиринта  2 240

•  Проверка числового ввода  1 925

•  HEX View  2 225

•  Физический маятник  1 911

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

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



Автор: 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




Похожие по теме исходники

Проверка числового ввода




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте