Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Преобразование сроки в число
Преобразует строку в число, при этом удаля из строки все лишние символы
Зависимости: нет Автор: Separator, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., ICQ:162770303, Алматы Copyright: Separator
***************************************************** }
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 <> 0then begin SetLength(ResStr, L); E := false; DS := false; j := 0; for i := 1to 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 = 0then 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 = 0then 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 <> 0then 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 |
©Drkb::00919
Code: |
type TCharSet = setof Char;
function StripNonConforming(const S: string; const ValidChars: TCharSet): string; var DestI: Integer; SourceI: Integer; begin SetLength(Result, Length(S)); DestI := 0; for SourceI := 1to 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;
|
https://delphiworld.narod
DelphiWorld 6.0
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!