AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

mehrere Tokens aus string löschen

Ein Thema von sniper_w · begonnen am 9. Okt 2005 · letzter Beitrag vom 9. Okt 2005
Antwort Antwort
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#1

mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 12:08
Delphi-Quellcode:
procedure ReplaceStr(var ToReplace:string; const strout,strin:string);
  var p:integer;
begin
  p := Pos(strout, ToReplace);
  //if p<>0 then
  while p<>0 do
  begin
    Delete(ToReplace, p, Length( strout ) );
    Insert(strin, ToReplace, p);
    //ReplaceStr(ToReplace, strout, strin);
    p := Pos(strout, ToReplace);
  end;
end;
Dies ist eine Procedur die nicht funktioniert...warum, weiss ich nicht. Was ich erreichen will ist folgendes:
Delphi-Quellcode:
Anfangsstring := 'jh sj ebnjbfu hhh sdhweh sdfhhhs jhe hjhhh';
ReplaceStr(Anfangsstring, 'hhh, 'X');
//jetzt sieht mein string so aus
Anfangsstring :=
'jh sj ebnjbfu X sdhweh sdfXs jhe hjX';
Was mache ich falsch ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 12:13
Klappt bei mir aber
Julian J. Pracht
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 12:45
Ich würde eine Lösung auf Basis von PosEx() vorziehen, da ansonsten eine nicht endende Rekursion auftreten kann - bereits veränderter Text soll ja nicht erneut betrachtet werden...

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 14:08
Und wo soll PosEx sein ?

[Error] Undeclared idetifier : 'PosEx'
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 14:19
In allen Delphi-Versionen ab 7 ^^ .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 14:32
Ich habe aber Delphi 6...
Meine Lösung (nicht schön aber geht...für meine Zwecke reicht) :
Delphi-Quellcode:
procedure ReplaceStr(var ToReplace:string; const strout,strin:string);
  var p :integer;
      before, after:string;
begin
  before := '';
  after := ToReplace;
  p := Pos(strout, after);
  while p<>0 do
  begin
    before := before + Copy(after,1,p-1) + strin;
    after := Copy(after, p+Length(strout), length(after) - p+Length(strout) );
    p := Pos(strout, after);
  end;
  ToReplace := before+after;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 14:48
Zitat von sniper_w:
Und wo soll PosEx sein ?
Tut mir leid, ich hatte D6 in deinem Profil übersehen. Wenn du es je brauchen solltest:

Delphi-Quellcode:
function PosEx(const SubStr, S: string; Offset: integer): integer;
begin
  Result := Pos(SubStr, Copy(S, OffSet, Succ(Length(S) - OffSet)));
  if Result > 0 then Result := Result + Pred(Offset);
end;
Zu finden war es auch mit PosEx als Suchwort hier in der DP. Aber du hast ja jetzt eine Lösung - und sogar ohne die Rekursionsfalle. Schönen Sonntag noch.

marabu
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#8

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 14:56
delphi (ab 5) hat standardmaessig stringersetzungsfunktionen. wieso benutzt du die nicht??
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 16:09
Welche denn ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#10

Re: mehrere Tokens aus string löschen

  Alt 9. Okt 2005, 16:22
Moin moin,
wie wäre es mit StringReplace (SysUtils)?
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 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