Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi aus einem string von x bis y alles weg (https://www.delphipraxis.net/3831-aus-einem-string-von-x-bis-y-alles-weg.html)

Seikilos 1. Apr 2003 19:28


aus einem string von x bis y alles weg
 
hm ich weiß, ich muss mit Pos und Copy arbeiten, hab schon gesucht.
Aber ich weiß nicht, was ich tun soll, wenn dies passiert.

Aus dem String soll ich alles was in [ ] steht sammt klammern rauslöschen. nun ja, ich such nach pos [, dann pos ] und kopiere den rest, aber was ist wenn ein ] vor einem [ auftaucht?

z.b
string:='Hallo ]D , ich bins [Andy]';

Nun find ich zwar das [ vor Andy aber das ] vor dem D.
Gibts eine Möglichkeit gezielter zu suchen?

Garby 1. Apr 2003 19:42

Hallo,

es würde dir sicher helfen, mal andere Beiträge im Forum zu lesen :wink:

so gehts ziemlich einfach:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Strg, Wert: String;
begin
  Strg := 'Hallo ]D , ich bins [Andy]';
  Wert := 'Andy';
  ShowMessage(StringReplace(Strg, '[' + Wert + ']', '', [rfReplaceAll, rfIgnoreCase]));
end;

Seikilos 1. Apr 2003 19:44

Hab ich gelesen, aber ich kenne ja WERT nicht, es kann alles in den klammern stehen, sonst könnt ich auch [ANDY] suchen.

thomasdrewermann 1. Apr 2003 19:47

Hier nochmal eine Selbstgebastelte Funktion:
Delphi-Quellcode:
function cutit(text:string):string;
var i,start,ende:integer; a:string;
begin
i:=1;
while (text[i]<>'[') and (i<lengtH(text)) do
i:=i+1;
start:=i;
i:=1;
repeat
I:=i+1;
until ((i>=start) and (text[i]=']')) or (i>length(text));
ende:=i;
a:=text;
if length(texT)=start then result:=text else
if (length(text)=ende) and (text[lengtH(text)]<>']') then result:=text else
delete(a,start,ende-start+1);
if result<>text then
result:=a;
end;

Seikilos 1. Apr 2003 19:49

ah, danke, dann werd ich mal operieren :)

.

peep:

'Andy [ war ein [großer] Junge';

jetzt gehts nimma

thomasdrewermann 1. Apr 2003 19:54

Sicher, er schneidet den Text zwischen den Klammern weg. Danach bleibt nur noch 'Andy Junge' stehn. Das ist doch korrekt. Aber die Funktion schneidet nur den ersten Kommentar weg!

Seikilos 1. Apr 2003 19:57

nene, wenn jemand

Andy mit dem Coolen zeichen [D fuhr [schnell] zur hölle.

schreibt, dann muss schon das wort weg, nicht sein cooles zeichen


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.

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