pText
riecht ein wenig danach, als ob du den irgendwo als PChar o.ä. definiert hast und damit dann die Procedure aufrufst.
Musst du das veränderte pText zwingend wieder zurückgeben?
Wenn nicht, dann kannst du das auch so machen:
Delphi-Quellcode:
function Textwerkzeug.wortAn(
const pText:
string; wortNummer: integer ):
string;
var
lText:
string;
begin
if copy( pText, length( pText ) - 1, 2 ) = CRLF
then
lText := copy( pText, 1, length( pText ) - 2 )
else
lText := pText;
while ( ansiPos( zTrennung, lText ) > 0 )
and ( wortNummer > 1 )
do begin
delete( lText, 1, ansiPos( zTrennung, lText ) + length( zTrennung ) - 1 );
dec( wortNummer );
end;
if wortNummer = 1
then
if ansiPos( zTrennung, lText ) > 0
then
result := copy( lText, 1, ansiPos( zTrennung, lText ) - 1 )
//LEAK
else
result := lText
else
result := '
';
end;
Eigentlich sollte man es vermeiden, die Parameter zu verändern es sei denn, die sollen auch bewusst wieder zurückgeliefert werden. (wortNummer)
Dann sollte man vor die Parameter aber auch ein
var
setzen.
Beim Benutzen der Func/Proc ist es einem dann auch bewusst, dass der Übergabeparameter nachher verändert sein kann.