📄 unit1.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 + -