Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   & ersetzen, wenn es nicht als && vorkommt (https://www.delphipraxis.net/210887-ersetzen-wenn-es-nicht-als-vorkommt.html)

himitsu 27. Jun 2022 12:42

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von Sinspin (Beitrag 1507919)
Zitat:

Zitat von HolgerX (Beitrag 1507894)
Delphi-Quellcode:
s := StringReplace(s, '&', '', []);

Das schießt zu kurz. da würde auch die erwünschten doppel & (&&) platt machen.

Zitat:

Zitat von DeddyH (Beitrag 1507920)
Nein, es würde nur das erste Vorkommen von "&" löschen.

Delphi-Quellcode:
StringReplace(s, '&', '', [rfReplaceAll]);
ReplaceStr(s, '&', '');
s.Replace('&', '')

himitsu 27. Jun 2022 12:44

AW: & ersetzen, wenn es nicht als && vorkommt
 
[deleted]

Uwe Raabe 27. Jun 2022 13:33

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von DeddyH (Beitrag 1507920)
Nein, es würde nur das erste Vorkommen von "&" löschen.

Schon, aber das wäre bei einem String "List && Label &Designer" nicht wirklich hilfreich.

DeddyH 27. Jun 2022 13:58

AW: & ersetzen, wenn es nicht als && vorkommt
 
Das war ja nicht mein Code.

himitsu 27. Jun 2022 13:59

AW: & ersetzen, wenn es nicht als && vorkommt
 
Delphi-Quellcode:
s := ReplaceStr(ReplaceStr(ReplaceStr(s, '&&', #1), '&', ''), #1, '&')
:freak:
Delphi-Quellcode:
s := s.Replace('&&', #1).Replace('&', '').Replace(#1, '&')

oder Regexen

Sinspin 27. Jun 2022 14:32

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von DeddyH (Beitrag 1507920)
Nein, es würde nur das erste Vorkommen von "&" löschen.

Jup, du hast recht. :wall:

Zitat:

Zitat von himitsu (Beitrag 1507943)
Delphi-Quellcode:
s := s.Replace('&&', #1).Replace('&', '').Replace(#1, '&')

Das ist schon richtig gut :thumb:, aber die doppelten sollten ja erhalten bleiben.
also :
Delphi-Quellcode:
s := s.Replace('&&', #1).Replace('&', '').Replace(#1, '&&')
.

Beachten, #1 ist kein String!
Sondern ASCII Nummer 1. Also unwahrscheinlich dass das jemand aus versehen eingetippt hat.

Uwe Raabe 27. Jun 2022 15:05

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von Sinspin (Beitrag 1507953)
aber die doppelten sollten ja erhalten bleiben.

Ich nehme an, die sollen wohl eher durch einfache ersetzt werden, damit man dann den tatsächlich angezeigten String bekommt.

TurboMagic 27. Jun 2022 15:30

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1507959)
Zitat:

Zitat von Sinspin (Beitrag 1507953)
aber die doppelten sollten ja erhalten bleiben.

Ich nehme an, die sollen wohl eher durch einfache ersetzt werden, damit man dann den tatsächlich angezeigten String bekommt.

Deine Annahme stimmt!
Ich habe das mit einer leicht modifizierten Variante der VCL Funktion gelöst, ihr könnt euch also um wichtigere Probleme kümmwern... ;-)

Sinspin 27. Jun 2022 15:35

AW: & ersetzen, wenn es nicht als && vorkommt
 
Nur wenn Du die durch einfaches "&" ersetzt werden dir beim anzeigen via VCL Komponenten diese wieder durch Unterstrich oder unterstrichenen Buchstaben ersetzt und kein & angezeigt. && wird ja verwendet um ein einzelnes & in den Text zu bekommen ohne das es sich in einen Shortcut verwandelt.

himitsu 27. Jun 2022 16:01

AW: & ersetzen, wenn es nicht als && vorkommt
 
Nicht, wenn du im TLabel das ShowAccelChar auf True setzt. :stupid:

Aber ja, wie/wo es dann benutzt wird, entscheidet, ob man es als & oder && benötigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz