mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 20:19:25 +02:00
* marked several small "wrapper only" procedures as inline
* fixed some warnings git-svn-id: trunk@808 -
This commit is contained in:
parent
547c3f92b2
commit
39310ff5dd
@ -1,11 +1,9 @@
|
||||
{$mode objfpc}
|
||||
{$h+}
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 1999-2000 by the Free Pascal development team
|
||||
|
||||
Delphi/Kylix compatibility unit: String handling routines.
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 1999-2005 by the Free Pascal development team
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
@ -14,6 +12,9 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
{$mode objfpc}
|
||||
{$h+}
|
||||
{$inline on}
|
||||
unit strutils;
|
||||
|
||||
interface
|
||||
@ -26,22 +27,22 @@ uses
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Function AnsiResemblesText(const AText, AOther: string): Boolean;
|
||||
Function AnsiContainsText(const AText, ASubText: string): Boolean;
|
||||
Function AnsiStartsText(const ASubText, AText: string): Boolean;
|
||||
Function AnsiEndsText(const ASubText, AText: string): Boolean;
|
||||
Function AnsiReplaceText(const AText, AFromText, AToText: string): string;
|
||||
Function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;
|
||||
Function AnsiContainsText(const AText, ASubText: string): Boolean;inline;
|
||||
Function AnsiStartsText(const ASubText, AText: string): Boolean;inline;
|
||||
Function AnsiEndsText(const ASubText, AText: string): Boolean;inline;
|
||||
Function AnsiReplaceText(const AText, AFromText, AToText: string): string;inline;
|
||||
Function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;inline;
|
||||
Function AnsiIndexText(const AText: string; const AValues: array of string): Integer;
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
Case sensitive search/replace
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Function AnsiContainsStr(const AText, ASubText: string): Boolean;
|
||||
Function AnsiStartsStr(const ASubText, AText: string): Boolean;
|
||||
Function AnsiEndsStr(const ASubText, AText: string): Boolean;
|
||||
Function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
|
||||
Function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean;
|
||||
Function AnsiContainsStr(const AText, ASubText: string): Boolean;inline;
|
||||
Function AnsiStartsStr(const ASubText, AText: string): Boolean;inline;
|
||||
Function AnsiEndsStr(const ASubText, AText: string): Boolean;inline;
|
||||
Function AnsiReplaceStr(const AText, AFromText, AToText: string): string;inline;
|
||||
Function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean;inline;
|
||||
Function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
@ -50,28 +51,28 @@ Function AnsiIndexStr(const AText: string; const AValues: array of string): Inte
|
||||
|
||||
Function DupeString(const AText: string; ACount: Integer): string;
|
||||
Function ReverseString(const AText: string): string;
|
||||
Function AnsiReverseString(const AText: AnsiString): AnsiString;
|
||||
Function AnsiReverseString(const AText: AnsiString): AnsiString;inline;
|
||||
Function StuffString(const AText: string; AStart, ALength: Cardinal; const ASubText: string): string;
|
||||
Function RandomFrom(const AValues: array of string): string; overload;
|
||||
Function IfThen(AValue: Boolean; const ATrue: string; AFalse: string): string;
|
||||
Function IfThen(AValue: Boolean; const ATrue: string): string; // ; AFalse: string = ''
|
||||
Function IfThen(AValue: Boolean; const ATrue: string; AFalse: string): string;inline;
|
||||
Function IfThen(AValue: Boolean; const ATrue: string): string;inline; // ; AFalse: string = ''
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
VB emulations.
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
Function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
Function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
Function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;
|
||||
Function RightBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;
|
||||
Function MidBStr(const AText: AnsiString; const AByteStart, AByteCount: Integer): AnsiString;
|
||||
Function AnsiLeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
Function AnsiRightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
Function AnsiMidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;
|
||||
Function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;
|
||||
Function LeftStr(const AText: WideString; const ACount: Integer): WideString;
|
||||
Function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;inline;
|
||||
Function RightBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;inline;
|
||||
Function MidBStr(const AText: AnsiString; const AByteStart, AByteCount: Integer): AnsiString;inline;
|
||||
Function AnsiLeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
Function AnsiRightStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
Function AnsiMidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;inline;
|
||||
Function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;inline;
|
||||
Function LeftStr(const AText: WideString; const ACount: Integer): WideString;inline;
|
||||
Function RightStr(const AText: WideString; const ACount: Integer): WideString;
|
||||
Function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString;
|
||||
Function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString;inline;
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
Extended search and replace
|
||||
@ -87,9 +88,9 @@ type
|
||||
TStringSeachOption = TStringSearchOption;
|
||||
|
||||
Function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String; Options: TStringSearchOptions): PChar;
|
||||
Function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String): PChar; // ; Options: TStringSearchOptions = [soDown]
|
||||
Function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String): PChar;inline; // ; Options: TStringSearchOptions = [soDown]
|
||||
Function PosEx(const SubStr, S: string; Offset: Cardinal): Integer;
|
||||
Function PosEx(const SubStr, S: string): Integer; // Offset: Cardinal = 1
|
||||
Function PosEx(const SubStr, S: string): Integer;inline; // Offset: Cardinal = 1
|
||||
Function PosEx(c:char; const S: string; Offset: Cardinal): Integer;
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
@ -100,20 +101,20 @@ type
|
||||
TSoundexLength = 1..MaxInt;
|
||||
|
||||
Function Soundex(const AText: string; ALength: TSoundexLength): string;
|
||||
Function Soundex(const AText: string): string; // ; ALength: TSoundexLength = 4
|
||||
Function Soundex(const AText: string): string;inline; // ; ALength: TSoundexLength = 4
|
||||
|
||||
type
|
||||
TSoundexIntLength = 1..8;
|
||||
|
||||
Function SoundexInt(const AText: string; ALength: TSoundexIntLength): Integer;
|
||||
Function SoundexInt(const AText: string): Integer; //; ALength: TSoundexIntLength = 4
|
||||
Function SoundexInt(const AText: string): Integer;inline; //; ALength: TSoundexIntLength = 4
|
||||
Function DecodeSoundexInt(AValue: Integer): string;
|
||||
Function SoundexWord(const AText: string): Word;
|
||||
Function DecodeSoundexWord(AValue: Word): string;
|
||||
Function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength): Boolean;
|
||||
Function SoundexSimilar(const AText, AOther: string): Boolean; //; ALength: TSoundexLength = 4
|
||||
Function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength): Integer;
|
||||
Function SoundexCompare(const AText, AOther: string): Integer; //; ALength: TSoundexLength = 4
|
||||
Function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength): Boolean;inline;
|
||||
Function SoundexSimilar(const AText, AOther: string): Boolean;inline; //; ALength: TSoundexLength = 4
|
||||
Function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength): Integer;inline;
|
||||
Function SoundexCompare(const AText, AOther: string): Integer;inline; //; ALength: TSoundexLength = 4
|
||||
Function SoundexProc(const AText, AOther: string): Boolean;
|
||||
|
||||
type
|
||||
@ -138,17 +139,17 @@ Function RPos(c:char;const S : AnsiString):Integer; overload;
|
||||
Function RPos (Const Substr : AnsiString; Const Source : AnsiString) : Integer; overload;
|
||||
function AddChar(C: Char; const S: string; N: Integer): string;
|
||||
function AddCharR(C: Char; const S: string; N: Integer): string;
|
||||
function PadLeft(const S: string; N: Integer): string;
|
||||
function PadRight(const S: string; N: Integer): string;
|
||||
function PadLeft(const S: string; N: Integer): string;inline;
|
||||
function PadRight(const S: string; N: Integer): string;inline;
|
||||
function PadCenter(const S: string; Len: Integer): string;
|
||||
function Copy2Symb(const S: string; Symb: Char): string;
|
||||
function Copy2SymbDel(var S: string; Symb: Char): string;
|
||||
function Copy2Space(const S: string): string;
|
||||
function Copy2SpaceDel(var S: string): string;
|
||||
function Copy2Space(const S: string): string;inline;
|
||||
function Copy2SpaceDel(var S: string): string;inline;
|
||||
function AnsiProperCase(const S: string; const WordDelims: TSysCharSet): string;
|
||||
function WordCount(const S: string; const WordDelims: TSysCharSet): Integer;
|
||||
function WordPosition(const N: Integer; const S: string; const WordDelims: TSysCharSet): Integer;
|
||||
function ExtractWord(N: Integer; const S: string; const WordDelims: TSysCharSet): string;
|
||||
function ExtractWord(N: Integer; const S: string; const WordDelims: TSysCharSet): string;inline;
|
||||
function ExtractWordPos(N: Integer; const S: string; const WordDelims: TSysCharSet; var Pos: Integer): string;
|
||||
function ExtractDelimited(N: Integer; const S: string; const Delims: TSysCharSet): string;
|
||||
function ExtractSubstr(const S: string; var Pos: Integer; const Delims: TSysCharSet): string;
|
||||
@ -199,32 +200,31 @@ begin
|
||||
Result:=False;
|
||||
end;
|
||||
|
||||
Function AnsiContainsText(const AText, ASubText: string): Boolean;
|
||||
|
||||
Function AnsiContainsText(const AText, ASubText: string): Boolean;inline;
|
||||
begin
|
||||
AnsiContainsText:=AnsiPos(ASubText,AText)<>0;
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiStartsText(const ASubText, AText: string): Boolean;
|
||||
Function AnsiStartsText(const ASubText, AText: string): Boolean;inline;
|
||||
begin
|
||||
Result:=AnsiCompareText(Copy(AText,1,Length(AsubText)),ASubText)=0;
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiEndsText(const ASubText, AText: string): Boolean;
|
||||
Function AnsiEndsText(const ASubText, AText: string): Boolean;inline;
|
||||
begin
|
||||
result:=AnsiCompareText(Copy(AText,Length(AText)-Length(ASubText)+1,Length(ASubText)),asubtext)=0;
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiReplaceText(const AText, AFromText, AToText: string): string;
|
||||
Function AnsiReplaceText(const AText, AFromText, AToText: string): string;inline;
|
||||
begin
|
||||
Result := StringReplace(AText,AFromText,AToText,[rfReplaceAll,rfIgnoreCase]);
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;
|
||||
Function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;inline;
|
||||
begin
|
||||
Result:=(AnsiIndexText(AText,AValues)<>-1)
|
||||
end;
|
||||
@ -248,43 +248,39 @@ end;
|
||||
Case sensitive search/replace
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Function AnsiContainsStr(const AText, ASubText: string): Boolean;
|
||||
|
||||
Function AnsiContainsStr(const AText, ASubText: string): Boolean;inline;
|
||||
begin
|
||||
Result := AnsiPos(ASubText,AText)<>0;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function AnsiStartsStr(const ASubText, AText: string): Boolean;
|
||||
|
||||
Function AnsiStartsStr(const ASubText, AText: string): Boolean;inline;
|
||||
begin
|
||||
Result := AnsiPos(ASubText,AText)=1;
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiEndsStr(const ASubText, AText: string): Boolean;
|
||||
Function AnsiEndsStr(const ASubText, AText: string): Boolean;inline;
|
||||
begin
|
||||
Result := AnsiPos(ASubText,AText)=(length(AText)-length(ASubText)+1);
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
|
||||
Function AnsiReplaceStr(const AText, AFromText, AToText: string): string;inline;
|
||||
begin
|
||||
Result := StringReplace(AText,AFromText,AToText,[rfReplaceAll]);
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean;
|
||||
Function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean;inline;
|
||||
begin
|
||||
Result:=AnsiIndexStr(AText,Avalues)<>-1;
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
|
||||
|
||||
var i : longint;
|
||||
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
result:=-1;
|
||||
if high(AValues)=-1 Then
|
||||
@ -295,8 +291,6 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
Playthingies
|
||||
---------------------------------------------------------------------}
|
||||
@ -332,7 +326,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
Function AnsiReverseString(const AText: AnsiString): AnsiString;
|
||||
Function AnsiReverseString(const AText: AnsiString): AnsiString;inline;
|
||||
|
||||
begin
|
||||
Result:=ReverseString(AText);
|
||||
@ -342,19 +336,18 @@ end;
|
||||
|
||||
Function StuffString(const AText: string; AStart, ALength: Cardinal; const ASubText: string): string;
|
||||
|
||||
var i,j : longint;
|
||||
var i,j : SizeUInt;
|
||||
|
||||
begin
|
||||
j:=length(ASubText);
|
||||
i:=length(AText);
|
||||
SetLength(Result,i-ALength+j);
|
||||
SetLength(Result,i+j-ALength);
|
||||
move (AText[1],result[1],AStart-1);
|
||||
move (ASubText[1],result[AStart],j);
|
||||
move (AText[AStart+ALength], Result[AStart+j],i-AStart-ALength+1);
|
||||
move (AText[AStart+ALength], Result[AStart+j],i+1-AStart-ALength);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function RandomFrom(const AValues: array of string): string; overload;
|
||||
|
||||
begin
|
||||
@ -364,7 +357,7 @@ end;
|
||||
|
||||
|
||||
|
||||
Function IfThen(AValue: Boolean; const ATrue: string; AFalse: string): string;
|
||||
Function IfThen(AValue: Boolean; const ATrue: string; AFalse: string): string;inline;
|
||||
|
||||
begin
|
||||
if avalue then
|
||||
@ -375,7 +368,7 @@ end;
|
||||
|
||||
|
||||
|
||||
Function IfThen(AValue: Boolean; const ATrue: string): string; // ; AFalse: string = ''
|
||||
Function IfThen(AValue: Boolean; const ATrue: string): string;inline; // ; AFalse: string = ''
|
||||
|
||||
begin
|
||||
if avalue then
|
||||
@ -390,7 +383,7 @@ end;
|
||||
VB emulations.
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
Function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
|
||||
begin
|
||||
Result:=Copy(AText,1,ACount);
|
||||
@ -407,7 +400,7 @@ begin
|
||||
Result:=Copy(AText,l-j+1,j);
|
||||
end;
|
||||
|
||||
Function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;
|
||||
Function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;inline;
|
||||
|
||||
begin
|
||||
if (ACount=0) or (AStart>length(atext)) then
|
||||
@ -417,65 +410,52 @@ end;
|
||||
|
||||
|
||||
|
||||
Function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;
|
||||
Function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;inline;
|
||||
|
||||
begin
|
||||
Result:=LeftStr(AText,AByteCount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function RightBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;
|
||||
|
||||
Function RightBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString;inline;
|
||||
begin
|
||||
Result:=RightStr(Atext,AByteCount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function MidBStr(const AText: AnsiString; const AByteStart, AByteCount: Integer): AnsiString;
|
||||
|
||||
Function MidBStr(const AText: AnsiString; const AByteStart, AByteCount: Integer): AnsiString;inline;
|
||||
begin
|
||||
Result:=MidStr(AText,AByteStart,AByteCount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function AnsiLeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
|
||||
Function AnsiLeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
begin
|
||||
Result := copy(AText,1,ACount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function AnsiRightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
|
||||
|
||||
Function AnsiRightStr(const AText: AnsiString; const ACount: Integer): AnsiString;inline;
|
||||
begin
|
||||
Result := copy(AText,length(AText)-ACount+1,ACount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function AnsiMidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;
|
||||
|
||||
Function AnsiMidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString;inline;
|
||||
begin
|
||||
Result:=Copy(AText,AStart,ACount);
|
||||
end;
|
||||
|
||||
Function LeftStr(const AText: WideString; const ACount: Integer): WideString;
|
||||
|
||||
Function LeftStr(const AText: WideString; const ACount: Integer): WideString;inline;
|
||||
begin
|
||||
Result:=Copy(AText,1,ACount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function RightStr(const AText: WideString; const ACount: Integer): WideString;
|
||||
|
||||
var
|
||||
j,l:integer;
|
||||
|
||||
begin
|
||||
l:=length(atext);
|
||||
j:=ACount;
|
||||
@ -484,16 +464,12 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString;
|
||||
|
||||
Function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString;inline;
|
||||
begin
|
||||
Result:=Copy(AText,AStart,ACount);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
Extended search and replace
|
||||
---------------------------------------------------------------------}
|
||||
@ -607,19 +583,17 @@ end;
|
||||
|
||||
|
||||
|
||||
Function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String): PChar; // ; Options: TStringSearchOptions = [soDown]
|
||||
|
||||
Function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String): PChar;inline; // ; Options: TStringSearchOptions = [soDown]
|
||||
begin
|
||||
Result:=SearchBuf(Buf,BufLen,SelStart,SelLength,SearchString,[soDown]);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function PosEx(const SubStr, S: string; Offset: Cardinal): Integer;
|
||||
|
||||
var i : pchar;
|
||||
begin
|
||||
if (offset<1) or (offset>length(s)) then exit(0);
|
||||
if (offset<1) or (offset>SizeUInt(length(s))) then exit(0);
|
||||
i:=strpos(@s[offset],@substr[1]);
|
||||
if i=nil then
|
||||
PosEx:=0
|
||||
@ -628,21 +602,21 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
Function PosEx(const SubStr, S: string): Integer; // Offset: Cardinal = 1
|
||||
|
||||
Function PosEx(const SubStr, S: string): Integer;inline; // Offset: Cardinal = 1
|
||||
begin
|
||||
posex:=posex(substr,s,1);
|
||||
end;
|
||||
|
||||
|
||||
Function PosEx(c:char; const S: string; Offset: Cardinal): Integer;
|
||||
|
||||
var l : longint;
|
||||
begin
|
||||
if (offset<1) or (offset>length(s)) then exit(0);
|
||||
if (offset<1) or (offset>SizeUInt(length(s))) then exit(0);
|
||||
l:=length(s);
|
||||
{$ifndef useindexbyte}
|
||||
while (offset<=l) and (s[offset]<>c) do inc(offset);
|
||||
if offset>l then
|
||||
while (SizeInt(offset)<=l) and (s[offset]<>c) do inc(offset);
|
||||
if SizeInt(offset)>l then
|
||||
posex:=0
|
||||
else
|
||||
posex:=offset;
|
||||
@ -703,7 +677,7 @@ end;
|
||||
|
||||
|
||||
|
||||
Function Soundex(const AText: string): string; // ; ALength: TSoundexLength = 4
|
||||
Function Soundex(const AText: string): string;inline; // ; ALength: TSoundexLength = 4
|
||||
|
||||
begin
|
||||
Result:=Soundex(AText,4);
|
||||
@ -736,15 +710,12 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexInt(const AText: string): Integer; //; ALength: TSoundexIntLength = 4
|
||||
|
||||
Function SoundexInt(const AText: string): Integer;inline; //; ALength: TSoundexIntLength = 4
|
||||
begin
|
||||
Result:=SoundexInt(AText,4);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function DecodeSoundexInt(AValue: Integer): string;
|
||||
|
||||
var
|
||||
@ -766,7 +737,6 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexWord(const AText: string): Word;
|
||||
|
||||
Var
|
||||
@ -781,9 +751,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function DecodeSoundexWord(AValue: Word): string;
|
||||
|
||||
begin
|
||||
Result := Chr(Ord0+ (AValue mod 7));
|
||||
AValue := AValue div 7;
|
||||
@ -795,41 +763,31 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength): Boolean;
|
||||
|
||||
Function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength): Boolean;inline;
|
||||
begin
|
||||
Result:=Soundex(AText,ALength)=Soundex(AOther,ALength);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexSimilar(const AText, AOther: string): Boolean; //; ALength: TSoundexLength = 4
|
||||
|
||||
Function SoundexSimilar(const AText, AOther: string): Boolean;inline; //; ALength: TSoundexLength = 4
|
||||
begin
|
||||
Result:=SoundexSimilar(AText,AOther,4);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength): Integer;
|
||||
|
||||
Function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength): Integer;inline;
|
||||
begin
|
||||
Result:=AnsiCompareStr(Soundex(AText,ALength),Soundex(AOther,ALength));
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexCompare(const AText, AOther: string): Integer; //; ALength: TSoundexLength = 4
|
||||
|
||||
Function SoundexCompare(const AText, AOther: string): Integer;inline; //; ALength: TSoundexLength = 4
|
||||
begin
|
||||
Result:=SoundexCompare(AText,AOther,4);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function SoundexProc(const AText, AOther: string): Boolean;
|
||||
|
||||
begin
|
||||
Result:=SoundexSimilar(AText,AOther);
|
||||
end;
|
||||
@ -961,16 +919,19 @@ begin
|
||||
Result:=Result+StringOfChar(C,N-l);
|
||||
end;
|
||||
|
||||
function PadRight(const S: string; N: Integer): string;
|
||||
|
||||
function PadRight(const S: string; N: Integer): string;inline;
|
||||
begin
|
||||
Result:=AddCharR(' ',S,N);
|
||||
end;
|
||||
|
||||
function PadLeft(const S: string; N: Integer): string;
|
||||
|
||||
function PadLeft(const S: string; N: Integer): string;inline;
|
||||
begin
|
||||
Result:=AddChar(' ',S,N);
|
||||
end;
|
||||
|
||||
|
||||
function Copy2Symb(const S: string; Symb: Char): string;
|
||||
|
||||
var
|
||||
@ -990,12 +951,12 @@ begin
|
||||
S:=TrimRight(Copy(S,Length(Result)+1,Length(S)));
|
||||
end;
|
||||
|
||||
function Copy2Space(const S: string): string;
|
||||
function Copy2Space(const S: string): string;inline;
|
||||
begin
|
||||
Result:=Copy2Symb(S,' ');
|
||||
end;
|
||||
|
||||
function Copy2SpaceDel(var S: string): string;
|
||||
function Copy2SpaceDel(var S: string): string;inline;
|
||||
begin
|
||||
Result:=Copy2SymbDel(S,' ');
|
||||
end;
|
||||
@ -1067,15 +1028,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function ExtractWord(N: Integer; const S: string; const WordDelims: TSysCharSet): string;
|
||||
|
||||
function ExtractWord(N: Integer; const S: string; const WordDelims: TSysCharSet): string;inline;
|
||||
var
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result:=ExtractWordPos(N,S,WordDelims,i);
|
||||
end;
|
||||
|
||||
|
||||
function ExtractWordPos(N: Integer; const S: string; const WordDelims: TSysCharSet; var Pos: Integer): string;
|
||||
var
|
||||
i,j,l: Integer;
|
||||
@ -1296,17 +1257,18 @@ const
|
||||
Arabics : Array[1..13] of Integer
|
||||
= (1,4,5,9,10,40,50,90,100,400,500,900,1000);
|
||||
Romans : Array[1..13] of String
|
||||
= ('i','iV','V','iX','X','XL','L','XC','C','CD','D','CM','M');
|
||||
= ('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');
|
||||
|
||||
var
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result:='';
|
||||
for i:=13 downto 1 do
|
||||
while (Value >= Arabics[i]) do
|
||||
begin
|
||||
Value:=Value-Arabics[i];
|
||||
Result:=Result+Romans[i];
|
||||
Value:=Value-Arabics[i];
|
||||
Result:=Result+Romans[i];
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1510,7 +1472,7 @@ end;
|
||||
|
||||
Function RPosEX(C:char;const S : AnsiString;offs:cardinal):Integer; overload;
|
||||
|
||||
var I : Integer;
|
||||
var I : SizeUInt;
|
||||
p,p2: pChar;
|
||||
|
||||
Begin
|
||||
@ -1580,7 +1542,7 @@ begin
|
||||
rPosex:=0;
|
||||
llen:=Length(SubStr);
|
||||
maxlen:=length(source);
|
||||
if offs<maxlen then maxlen:=offs;
|
||||
if SizeInt(offs)<maxlen then maxlen:=offs;
|
||||
if (llen>0) and (maxlen>0) and ( llen<=maxlen) then
|
||||
begin
|
||||
// i:=maxlen;
|
||||
|
Loading…
Reference in New Issue
Block a user