Thema: Delphi Kommastellen löschen

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.118 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Kommastellen löschen

  Alt 26. Sep 2009, 14:51
Moin Zusammen,

ich möchte auch noch auf PosEx hinweisen:

Delphi-Quellcode:
var
  sValue : string;
  iPos : Integer;
  i : Integer;

begin
  sValue := '6782,237,3489,34576,346539,34566,345,34,534';
  iPos := Pos(',',sValue);
  for i := 1 to 2 do begin
    iPos := PosEx(',',sValue,iPos+1);
  end;
  sValue := Copy(sValue,iPos+1,MaxInt);
  ShowMessage(sValue);
end;
Sollte Delphi 6 PosEx noch nicht kennen (Unit StrUtils), habe ich hier noch eine abgespeckte Version:

Delphi-Quellcode:
function csPosEx(const AsSeparator : string;const AsValue : string;const AiStart : Integer) : Integer;

var
  iPos : Integer;
  iLen : Integer;

begin
  if AiStart <= 0 then begin
    Result := Pos(AsSeparator,AsValue);
  end else begin
    iPos := AiStart;
    iLen := Length(AsValue);
    while iPos <= iLen do begin
      if AsValue[iPos] = AsSeparator[1] then begin
        Result := iPos;
        Exit;
      end;
      Inc(iPos);
    end;
    Result := 0;
  end;
end;
Abgespeckt meint hier übrigens, dass nur auf ein Zeichen geprüft wird, nicht auf einen Substring, was aber für den gewünschten Anwendungsfall ausreicht.
Bevor noch jemand meckert, dass nicht geprüft wird, ob AsSeparator leer ist: Das macht PosEx auch nicht anders
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat