Ved at bruge følgende kode kan der findes et tegn/ord, som kan erstattes med noget nyt
Function SkiftStreng(Ind, Tegn1, Tegn2 : String) : String; Var t,v:integer; Begin If Pos(Tegn1,Ind)>0 Then repeat begin t:=Pos(Tegn1,Ind); v:=(length(Tegn1)); Delete(Ind,t,v); Insert(tegn2, Ind, t); end; until Pos(Tegn1,Ind)=0 ; Result:=Ind; End;
er det koden som indsættes i replacedialog, istedet for:
var SelPos: Integer; begin with TReplaceDialog(Sender) do begin SelPos := Pos(FindText, richEdit1.Lines.Text); if SelPos > 0 then begin RichEdit1.SelStart := SelPos - 1; RichEdit1.SelLength := Length(FindText); RichEdit1.SelText := ReplaceText; end else MessageDlg(Concat('Kunne ikke finde "', FindText, '" i Dokumentet.'), mtError, [mbOk], 0);
Skal lige tilføjes til den kode jeg kom med, at det er en funktion som du kalder et andet sted i dit dokument. Derved kan funktionen blive kaldt mange steder i dokumentet, men du behøver kun at bruge én linie hver gang den bruges!
Hej, jeg har rettet lidt i proceduren, så alt bliver skiftet, lige gyldigt om det er store eller små bogstaver.
Function SkiftStreng(Ind, Tegn1, Tegn2 : String ; TegnForskel : Integer) : String; Var t,v:integer; ind2 : string; Begin if not(TegnForskel=1) then Tegn1 := AnsiUpperCase(Tegn1); if not(TegnForskel=1) then ind2 := AnsiUpperCase(ind) else ind2 := ind; If Pos(Tegn1,Ind2) > 0 Then repeat begin t:=Pos(Tegn1,Ind2); v:=(length(Tegn1)); Delete(Ind,t,v); Insert(tegn2, Ind, t); if not(TegnForskel=1) then ind2 := AnsiUpperCase(ind) else ind2 := ind; end; until Pos(Tegn1,Ind2)=0 ; Result:=Ind; End;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.