Thema: Delphi Problem mit Pos/PosEx

Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.427 Beiträge
 
Delphi 7 Professional
 
#3

AW: Problem mit Pos/PosEx

  Alt 11. Apr 2021, 22:42
Ungefähr sowas? (nur hingedaddelt ala Delphi 7)
Delphi-Quellcode:
function GetText(sText : string; sData : String; cDelim : Char) : String;
var
  iPos1 : Integer;
  iPos2 : Integer;
  iData : Integer;
begin
  // Länge des zu entfernenen Textes zuzüglich Delimiter ermitteln:
  iData := Length(sData + cDelim);
  // '[[Hamburg]] || 2008 ||data-sort-value="Diplomica"| [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch';
  // Position von ||data-sort-value=" ermitteln:
  iPos1 := Pos(sData,sText);
  // Alles hinter dieser Position plus der Länge von ||data-sort-value=" holen:
  // Diplomica"| [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch
  sData := Copy(sText,iPos1 + ciData,Length(sText));
  // Die Position von " ermitteln:
  iPos2 := Pos(cDelim,sData);
  // Alles ab der 1. Stelle hinter dieser Postion holen:
  // | [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch
  sData := Copy(sData,iPos2 + 1,Length(sData));
  // Aus dem Ursprungstext alles vor der Positon holen:
  // '[[Hamburg]] || 2008
  sText := Copy(sText,1,iPos1 - 1);
  // Den ersten Teil des Ursprungstexte und den hinteren Teil zusammenfügen:
  Result := sText + sData;
end;

begin
  sText := '[[Hamburg]] || 2008 ||data-sort-value="Diplomica"| [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch';
  sText := GetText(sText, '||data-sort-value=','"');
end;
Sollte aus einem gegebenen Text auch andere Fragmente entfernen können.
  Mit Zitat antworten Zitat