Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TextFile auslesen mit Funtion

  Alt 11. Mär 2008, 09:40
Hallo,

hier ein imperativer Ansatz:

Delphi-Quellcode:
function AnsiExtractStr(var p: PAnsiChar; delimiters: string): string;
var
  pStart: PChar;
begin
  pStart := p;
  while (p <> '') and (AnsiPos(p[0], delimiters) = 0) do
    Inc(p);
  if p <> 'then
  begin
    SetString(Result, pStart, Integer(p) - Integer(pStart));
  end else Result := '';
end;

procedure ExtractValues(stmt: string; values: TStrings);
const
  S_VALUES = ' VALUES';
var
  s: string;
  iVal, iPar: Integer;
  p: PChar;
begin
  values.Clear;
  p := PChar(stmt);
  iVal := Pos(S_VALUES, AnsiUppercase(stmt));
  iPar := PosEx('(', stmt, iVal + Length(S_VALUES));
  Inc(p, iPar);
  while Assigned(p) do
  begin
    if AnsiStartsStr('''', p)
      then s := AnsiExtractQuotedStr(p, '''')
      else s := AnsiExtractStr(p, ',)');
    values.Add(s);
    while Assigned(p) and (p[0] in [' ', ',']) do
      Inc(p);
    if AnsiStartsStr(')', p) then
      Break;
  end;
end;
Getippt und nicht ausführlich getestet.

Freundliche Grüße
  Mit Zitat antworten Zitat