domingo, 13 de setembro de 2009

Obtendo a próxima palavra após os espaços determinados por 'BlankToSkip'

Function NextWord (S : ShortString; BlankToSkip, Mode : Byte) : ShortString;
Var
PosAnt, PosFin : Integer;
Begin
if Mode = mdAscend Then
PosFin := 1
else
PosFin := Length (S);
Inc (BlankToSkip);
Repeat
PosAnt := PosFin;
PosFin := NextPosWord (S, PosFin, Mode);
Dec (BlankToSkip);
Until (BlankToSkip = 0) or (PosFin = 0);
if BlankToSkip > 0 Then
Result := ''
else
begin
if PosFin = 0 Then
if Mode = mdAscend Then
PosFin := Length (S) + 1;
if Mode = mdAscend Then
Result := StripChar (Copy (S, PosAnt, PosFin - PosAnt), EspacoBranco, ReplaceRight)
else
Result := StripChar (Copy (S, PosFin + 1, PosAnt - PosFin), EspacoBranco, ReplaceLeft);
end;
End;

Nenhum comentário:

Postar um comentário