Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#15

Re: Fehler im Code.. aber wo?

  Alt 14. Sep 2007, 19:28
Zitat von Lotus:
@Rwarnecke
danke für diesen code.. allerdings verstehe ich diesen nicht ganz und möchte ihn daher nicht blind benutzen.. mir wäre es lieber wenn ich alles genau verstehe.. allerdings faengts schon bei sub und mainstring an...
Substring und MainString sind Variablen. SubString ist der String der gesucht wird im Mainstring. N ist die Position die gesucht werden soll vom Substring. Ein kleines Beispiel :
Delphi-Quellcode:
function PosN(Substring, Mainstring: string; n: Integer): Integer;
begin
  if Pos(substring, mainstring) = 0 then begin
    posn := 0;
    Exit;
  end else begin
    if n = 1 then posn := Pos(substring, mainstring)
    else begin
      posn := Pos(substring, mainstring) + posn(substring, Copy(mainstring,
         (Pos(substring, mainstring) + 1), Length(mainstring)), n - 1);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  text : string;
  ergebnis : string;
  zaehler : integer;
begin
  text := 'AVAAS';
  zaehler := 1;
  repeat
    if posn('A', text, zaehler) > 0 then
      ergebnis := ergebnis + IntToStr(posn('A', text, zaehler)) + ', ';
    zaehler := zaehler + 1;
  until posn('A', text, zaehler) = 0;
  Label1.Caption := ergebnis;
end;
Das habe ich nur so runtergetippt. Sollte aber funktionieren. Ein kleiner Tipp von mir, schaue Dir wirklich mal die Befehle Pos und PosEx in der Online-Hilfe genaustens an.

Edit:
Für das Beispiel brauchst Du ein Label und einen TButton. Das ganze kann man sicherlich auch noch eleganter in einer For-Schleife machen.

Edit 2:
Erklärung von der Variable "n" hinzugefügt.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat