본문 바로가기

카테고리 없음

[일반/컴포넌트] 숫자앞의 무효한 0 제거하기

반응형
// For example:
//   '000'  -->  '0'
//   '001'  -->  '1'
//   '010'  -->  '10'
//   '100'  -->  '100'
//   '127.000.000.001' --> '127.0.0.1'

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

function unZero(s: String): String;
var
  j: integer;
  nDel: integer;
begin
  nDel := -1;
  for j := length(s) downto 1 do
    case s[j] of
      '0': inc(nDel);
      '1'..'9': nDel := 0;
      else
      begin
        if (nDel > 0) then
          delete(s, j+1, nDel);
        nDel := -1;
      end;
    end;
  if (nDel > 0) then
    delete(s, 1, nDel);
  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Edit1 에 숫자를 입력하고 Button을 누르세요
  Edit2.Text := unZero(Edit1.Text);
end;

end.
반응형