Voci une unit qui regroupe pas mal de fonctions de manipulation de String,...
fonctions portant le même "nom" que sous vb,...
Source / Exemple :
unit FctsStr;
interface
uses
Windows,Messages, SysUtils, Classes, Graphics,StdCtrls;
function RightTrim(const s:String):String;
function LeftTrim(const s:String):String;
function InStr(Start: integer; Source: string; SourceToFind: string): integer;
function Mid(Source: string; Start: integer; Length: integer): string;
function Left(Source: string; Length: integer): string;
function Right(Source: string; Lengths: integer): string;
function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
function Split(Source, Deli: string; StringList: TStringList): TStringList;
function Reverse(Line: string): string;
implementation
function Reverse(Line: string): string;
var i: integer;
var a: string;
begin
For i := 1 To Length(Line) do
begin
a := Right(Line, i);
Result := Result + Left(a, 1);
end;
end;
function Split(Source, Deli: string; StringList: TStringList): TStringList;
var
EndOfCurrentString: byte;
begin
repeat
EndOfCurrentString := Pos(Deli, Source);
if EndOfCurrentString = 0 then
StringList.add(Source)
else
StringList.add(Copy(Source, 1, EndOfCurrentString - 1));
Source := Copy(Source, EndOfCurrentString + length(Deli), length(Source) - EndOfCurrentString);
until EndOfCurrentString = 0;
result := StringList;
end;
function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
var
i: integer;
lSub: Longint;
lData: Longint;
begin
i := 1;
lSub := Length(sSubstring);
lData := Length(sData);
repeat
begin
i := InStr(i, sData, sSubstring);
If i = 0 Then
begin
sNewSubString := sData;
Exit
end
Else
sData := Copy(sData, 1, i - 1) + sNewsubstring + Copy(sData, i + lSub, lData);
i := i + lSub;
End;
Until i > lData;
Replace := sData;
end;
function Left(Source: string; Length: integer): string;
begin
Result := copy(Source,1,Length);
end;
function Right(Source: string; Lengths: integer): string;
begin
Result := copy(source,Length(Source) - Lengths+1,Lengths+1);
end;
function Mid(Source: string; Start: integer; Length: integer): string;
begin
Result := copy(Source,Start,Length);
end;
function InStr(Start: integer; Source: string; SourceToFind: string): integer;
begin
Result := pos(SourceToFind,copy(Source,Start,Length(Source) - (Start - 1)));
end;
function RightTrim(const s:String):String;
var
i:integer;
begin
i:=length(s);
while (i>0) and (s[i]<=#32) do
Dec(i);
result:=Copy(s,1,i);
end;
function LeftTrim(const s:String):String;
var
i, L:integer;
begin
L:=length(s);
i:=1;
while (i<=L) and (s[i]<=#32) do
Inc(i);
result:=Copy(s,i, MaxInt);
end;
end.
Conclusion :
Ce code n'est pas de moi, mais il peut servir ;-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.