Nur, falls noch jemand mal ein ähnliches Problem hat:
Delphi-Quellcode:
{ ------------------------------------------------------------------------------
Procedure: FirstWord
Author: Frank Reim
Date: 28-Mrz-2006
Description:
Extrahiert das erste Wort einer Zeichenkette
Arguments:
const AStr
Return Value:
PChar
Deklaration in Firebird:
DECLARE EXTERNAL FUNCTION FirstWord
CSTRING(80)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'FIRSTWORD' MODULE_NAME 'rw_udfs';
------------------------------------------------------------------------------ }
function FirstWord(const AStr: PChar): PChar; cdecl;
var
// aktuelle Position
p: Integer;
// StartPosition (ohne Blank)
ps: Integer;
begin
Result := nil;
p := 0;
// CHR_BALANK ist #32
while AStr[p] = CHR_BLANK do
begin
inc(p);
end;
ps := p;
while AStr[p] <> #0 do
begin
if (AStr[p] in [' ', ',']) then
Break;
inc(p);
end;
Result := ib_util_malloc(p -ps + 1);
StrMove(Result, AStr + ps, p - ps);
Result[p - ps] := #0;
end;
Also Dank an Alle, hab es doch so gelöst - es geht ja auch um den Lerneffekt...
Cu, Frank