function StrRScan(const Str: PChar; Chr: Char): PChar;DescriptionStrRScan returns a pointer to the last occurrence of Chr in Str. If Chr does not occur in Str, StrRScan returns nil. The null terminator is considered to be part of the string.Note: If the source string contains international characters, use AnsiStrRScan instead.
自己写个函数啊 //------得到一个字符串在另一字符串中的最后一个起始位置----- //若没有匹配的字符串,返回0 function LastPos(SubStr,S:string):integer; var i:integer; iPos:integer; iStr:string; begin result:=0; iStr:=S; while 1=1 do begin iPos:=pos(SubStr,iStr); if iPos=0 then break; delete(iStr,1,iPos+length(SubStr)-1); end; result:=length(S)-length(iStr)-length(SubStr)+1; if result<0 then result:=0; end;
其实 doway(john) 兄弟就已经给出了答案,我在这里再贴一个例子uses SysUtils; function NamePart(FileName: PChar): PChar; var P: PChar; begin P := StrRScan(FileName, '\/'); if P = nil then begin P := StrRScan(FileName, ':'); if P = nil then P := FileName; end; NamePart := P; end;var S : string; begin S := string(NamePart('C:\Test.fil')); Canvas.TextOut(10, 10, S); end;
var
s:string;
begin
s:='abcd';
showmessage(s[length(s)]);得到尾部一个
2
function TForm1.GetLast(const Str: string): string;
begin
Result := Copy(Str, Length(Str), 1);
end;3方法很多,举个例子:
str:string;str:=Rightstr(str,1);
procedure TForm1.Button2Click(Sender: TObject);
var
str:TStringList;
i:integer;begin
str:=TStringlist.Create;
for i:=0 to memo1.Lines.Count -1 do
begin
if memo1.Lines.Strings[i]<>'' then
str.Add(memo1.Lines.Strings[i]);
end;
memo1.Lines:=str;
end;如何删除文本中的空行?
Trim(memo1.Lines.Strings[i])<>''
writeln()名称 类型 说明
----------------------------------------------------------------------------------
AnsiCompareStr 函数 比较字符串(区分大小写)
AnsiCompareText 函数 比较字符串(不区分大小写)
AnsiLowerCase 函数 将字符转换为小写
AnsiUpperCase 函数 将字符转换为大写
Caption 属性 标签文字的内容
Chr 函数 返回指定序数的字符
CompareStr 函数 比较字符串(区分大小写)
Concat 函数 合并字符串
Copy 函数 返回一字符串的子串
DateTimeToStr 函数 将日期时间格式转换为字符串
DateTimeToString 函数 将日期时间格式转换为字符串
DateToStr 函数 将日期格式转换为字符串
Delete 函数 从字符串中删除子串
DisposeStr 函数 释放字符串在堆栈中的内存空间
DitherBackground 属性 使背景色的色彩加重或减少50%
Insert 在字符串中插入子串
IntToHex 将整型数转换为十六进制数
IntToStr 将整型数转换为字符串
IsValidIdent 测试字符串是否为有效的标识符
Length 函数 返回字符串的动态长度
LowerCase 函数 将给定的字符串变为小写
NewStr 函数 在堆栈上分配新的字符串
Pos 函数 在字符串中搜索子串
Str 函数 将数值转换为字符串
StrAlloc 函数 给以NULL结束的字符串分配最大长度-1的缓冲区
StrBufSize 函数 返回存储在由StrAlloc分配的字符缓冲区的最大字符数
StrCat 函数 将一字符串附加到另一字符串尾并返回合并的字符串
StrComp 函数 比较两个字符串
StrCopy 函数 将一个字符串复制到另一个字符串中
StrDispose 函数 释放堆栈上的字符串
StrECopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针
StrEnd 函数 返回指向字符串尾部的指针
StrIComp 函数 比较两个字符串(不区分大小写)
StringToWideChar 函数 将ANSI字符串转换为UNICODE字符串
StrLCat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串
StrLComp 函数 以最大长度比较两个字符串
StrLCopy 函数 将一个字符串中的字符复制到另一个字符串中
StrLen 函数 返回字符串中的字符数
StrLIComp 函数 以最大长度比较两个字符串(不区分大小写)
StrLower 函数 将字符串中的字符转换为小写
StrMove 函数 将一个字符串中的字符复制到另一个字符串中
StrNew 函数 在堆栈上分配一个字符串
StrPas 函数 将以NULL结束的字符串转换为PASCAL类的字符串
StrPCopy 函数 将PASCAL类的字符串复制为以NULL结束的字符串
StrPLCopy 函数 从PASCAL类的最大长度字符串复制为以NULL结束的字符串
StrPos 函数 返回一个字符串在另一个字符串中首次出现指针
StrRScan 函数 返回字符串中最后出现字符的指针
StrScan 函数 返回字符串中出现首字符的指针
StrToDate 函数 将字符串转换为日期格式
StrToDateTime 函数 将字符串转换为日期/时间格式
StrToFloat 函数 将给定的字符串转换为浮点数
StrToInt 函数 将字符串转换为整型
StrToIntDef 函数 将字符串转换为整型或默认值
StrToTime 函数 将字符串转换为时间格式
StrUpper 函数 将字符串中的字符转换为大写
TextToFloat 函数 将字符串(以NULL结束的格式)转换为浮点数
TimeToStr 函数 将时间格式转换为字符串
Trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符
TrimLeft 函数 从给定的字符串中删除首部的空格及控制字符
TrimRight 函数 从给定的字符串中删除尾部的空格及控制字符
UpCase 将字符转换为大写
UpperCase 将给定的字符串变为大写
Val 函数 将字符串转换为整型值
WideCharLenToString 函数 将ANSI字符串转换为UNICODE字符串
WideCharLenToStrWar 函数 将UNICODE字符串转换为ANSI字符串变量
WideCharToString 函数 将UNICODE字符串转换为ANSI字符串
WideCharToStrVar 函数 将UNICODE字符串转换为ANSI字符串变量
//------得到一个字符串在另一字符串中的最后一个起始位置-----
//若没有匹配的字符串,返回0
function LastPos(SubStr,S:string):integer;
var
i:integer;
iPos:integer;
iStr:string;
begin
result:=0;
iStr:=S;
while 1=1 do
begin
iPos:=pos(SubStr,iStr);
if iPos=0 then break;
delete(iStr,1,iPos+length(SubStr)-1);
end;
result:=length(S)-length(iStr)-length(SubStr)+1;
if result<0 then
result:=0;
end;
function NamePart(FileName: PChar): PChar; var
P: PChar;
begin
P := StrRScan(FileName, '\/');
if P = nil then
begin
P := StrRScan(FileName, ':');
if P = nil then P := FileName;
end;
NamePart := P;
end;var S : string;
begin
S := string(NamePart('C:\Test.fil'));
Canvas.TextOut(10, 10, S);
end;