⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 用Delphi开发的
💻 PAS
字号:
unit Unit1;

interface

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

type
TEnum_Direct    = (Td_Left,Td_Right);
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    Function GetTimes_StrInAnotherStr(const Source:String;StrToFind:String):integer;
    Function GetStrToken(Const Source :String;Token:String;Direction:TEnum_Direct):String;
    Function GetStrTokenByIndex(const Source:String;Token:String;Index:integer):String;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
    ss:String;
    sel_str:String;//要选择的串
    Count :integer;//表示有多少个Tab
begin
    ss := Memo1.Text;
    Count := GetTimes_StrInAnotherStr(ss,#9);
    Edit1.Text := IntToStr(Count);
    //想多用循环,我不做了。
    //获取多个Tab键的第二段
    sel_str := getstrtokenByIndex(ss,'#9',2);
    Edit1.Text := Memo1.Text;


end;

{TODO -oXQ:获取指定分隔符左右的字符串}
{
    函数功能:得到指定分隔符左右的字符串
    创建时间:2003-03-24
    参数个数:3
    参数说明:1:原字符串 2:分隔符 3:取值方向
    返 回 值:成功:分隔符或左或右的字符串 失败返回空值
}
Function TForm1.GetStrToken(Const Source :String;Token:String;Direction:TEnum_Direct):String;
var
    Token_Pos :integer;
begin
    if ((Length(Source) <=0 ) or (Length(Source) = Length(Token))) then
    Result := '';

    Token_Pos := Pos(Token,Source);
    if(Token_Pos = 0) then
    begin
        Result := Source;
        Exit;
    end;
    if (Token_Pos > 0) then
    begin
        if (Direction = Td_Left) then
        begin
            Result := Copy(Source,1,Token_Pos -1);
            Exit;
        end else
        begin
            Result := Copy(Source,Token_Pos +1,Length(Source) - Token_Pos);
            Exit;
        end;
    end;
end;

{TODO -oXQ:获取某段字符串}
{
    函数功能:获取指定分隔符分隔的字符串中第Index段字符串
    创建时间:2003-03-24
    参数个数:3
    参数说明:1:源字符串 2:分隔符 3:Index值
    返 回 值:第Index 段字符串
}
Function TForm1.GetStrTokenByIndex(const Source:String;Token:String;Index:integer):String;
var
    i           :integer;
    TempStr     :String;
    TokenTimes  :integer;
begin
    TempStr     := Source;
    TokenTimes  := GetTimes_StrInAnotherStr(TempStr,Token);

    for i:=1 to TokenTimes +1 do
    begin
        if (i = Index) then
        begin
            TempStr :=  GetStrToken(TempStr,Token,Td_Left);
            Result := TempStr;
            Exit;
        end else
        TempStr := GetStrToken(TempStr,Token,Td_Right);
    end;   
end;
{TODO -oXQ:获取子串出现次数}
{
    函数功能:获取某一字符串在另一字符串中出现的次数
    创建时间:2003-03-24
    参数个数: 2;
    参数说明: 1:源字符串 2:查找的字符串
    返回值  : 查找的字符串在源字符串中出现的次数
}
Function TForm1.GetTimes_StrInAnotherStr(const Source:String;StrToFind:String):integer;
var
    FindPos :integer;
    Times   :integer;
    TempStr :String;
begin
    Times   := 0;
    TempStr := Source;
    FindPos := Pos(StrToFind,TempStr);
    while (FindPos > 0) do
    begin
        Times     := Times + 1;
        TempStr   := Copy(TempStr,FindPos + Length(StrToFind),Length(TempStr) - FindPos -Length(StrToFind)+1);
        FindPos   := Pos(StrToFind,TempStr);
    end;
    Result := Times;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -