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

POS 增強功能 : 最後位置,第 N 次位置,出現次數

 
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-04 16:44:56 IP:218.16.xxx.xxx 未訂閱
這只是很簡單的增強 POS 功能的 function ,不知有沒人 POST 過類似的    PosEnd 是回傳 SubStr 在 S 最後一次出現的位置,若沒出現回傳 0    PosN 是回傳 SubStr 在 S 第 n 次出現的位置,若出現少於n次回傳 0    PosCount 是回傳 SubStr 在 S 出現的次數    放這些 Function 的 Unit 要加 use StrUtils
function PosEnd(Substr,S: string): Integer;
var
  i : integer;
begin
  i := 0;
  repeat
    result := i;
    i := i   1;
    i := PosEx(SubStr,S,i)
  until i <= 0
end;    function PosN(Substr,S: string; N : Integer): Integer;
var
  i: integer;
begin
  result := 0;
  For i := 1 to N do
  begin
    result := result   1;
    result := PosEx(SubStr,S,result);
  end;
end;    function PosCount(SubStr,S : string) : Integer;
var
  i : integer;
begin
  i := 0;
  result := -1;
  repeat
    result := result   1;
    i := i   1;
    i := PosEx(SubStr,S,i)
  until i <= 0
end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-07 12:23:52 IP:218.16.xxx.xxx 未訂閱
From Delphi 7 VCL
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer; 
var
  I,X: Integer;
  Len, LenSubStr: Integer;
begin
  if Offset = 1 then
    Result := Pos(SubStr, S)
  else
  begin
    I := Offset;
    LenSubStr := Length(SubStr);
    Len := Length(S) - LenSubStr   1;
    while I <= Len do
    begin
      if S[I] = SubStr[1] then
      begin
        X := 1;
        while (X < LenSubStr) and (S[I   X] = SubStr[X   1]) do
          Inc(X);
        if (X = LenSubStr) then
        begin
          Result := I;
          exit;
        end;
      end;
      Inc(I);
    end;
    Result := 0;
  end;
end;
San
一般會員


發表:11
回覆:15
積分:5
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-07 14:08:03 IP:211.23.xxx.xxx 訂閱
剛測了一下,好像不是我想要的
我是想要像VB裡面的InStrRev函數
vb.inStr=delphi.pos
so
vb.instrDev=delphi.???
是要自己寫嗎?
我只是單純的要從一檔案字串中分解檔案路徑與檔名
由右邊搜尋"."來取得檔案名稱
所以想寫getFilePath與getFileName函數
不過好幾年沒碰delphi
又跟其他程式混洧
有點寫不出來的感覺..@@
------
力求神乎奇技
San
一般會員


發表:11
回覆:15
積分:5
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-07 14:11:27 IP:211.23.xxx.xxx 訂閱
測錯了
PostEnd即可
多謝指導
------
力求神乎奇技
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-08 07:52:42 IP:124.10.xxx.xxx 訂閱
從一檔案字串中分解檔案路徑與檔名不用自己寫

ExtractFilePath =
取檔案路徑
ExtractFileName = 檔案名稱
ExtractFileExt =
副檔名

其他有關檔案名稱的函數,請用「file name utilities」來搜尋 Help
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-07-07 3:35:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!