線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:984
推到 Plurk!
推到 Facebook!

关于一复杂的字符操作问题.

答題得分者是:h@visli
rainker
一般會員


發表:6
回覆:1
積分:1
註冊:2007-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-27 01:45:55 IP:116.209.xxx.xxx 訂閱
如:

Edit1.text:= 61.61.61.61
Edit2.text:= 61.61.63.65

如何将 61.61.61.61 - 61.61.63.65 之间的I P添加到 Memo 中.

请哥哥姐姐们 敲盘相助.!
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-27 09:07:18 IP:119.122.xxx.xxx 未訂閱
思路:
把IP1与IP2分别转换为整数表示,再把两个整数之间的值列举出来并以IP字符串形式表示.

示例代码:

function IPStrToIPVal(value: string): integer;
var
s: string;
i, x: Integer;
begin
Result := 0;
for x := 0 to 3 do
begin
s := Copy(value, 1, Pos('.', value) - 1);
i := StrToIntDef(Trim(s), 0);
Result := (256 * Result) i;
Delete(value, 1, Pos('.', value));
if Pos('.', value) = 0 then value := value '.';
end;
end;

function IPValToIPStr(value: integer): string;
var
x1, x2: word;
y1, y2: byte;
begin
Result := '';
x1 := value shr 16;
x2 := value and $FFFF;
y1 := x1 div $100;
y2 := x1 mod $100;
Result := inttostr(y1) '.' inttostr(y2) '.';
y1 := x2 div $100;
y2 := x2 mod $100;
Result := Result inttostr(y1) '.' inttostr(y2);
end;

procedure TForm5.Button1Click(Sender: TObject);
var
ip1, ip2: Integer;
i: Integer;
begin
ip1 := IPStrToIpVal(Edit1.Text);
ip2 := IPStrToIpVal(Edit2.Text);
for i := ip1 to ip2 do
memo1.Lines.Add(IPValToIPStr(i));
end;
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
系統時間:2024-04-30 6:04:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!