AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

StringReplace

Offene Frage von "warefare"
Ein Thema von warefare · begonnen am 31. Mai 2007 · letzter Beitrag vom 1. Jun 2007
 
warefare

Registriert seit: 31. Mai 2007
8 Beiträge
 
#3

Re: StringReplace und eckige Klammern

  Alt 1. Jun 2007, 02:37
Zitat von fLaSh11:
bei den ReplaceFlags ein rfIgnoreErrors einfügen?!
Ich habe bereits "rfIgnoreCase" ausprobiert .. rfIgnoreErrors gibts doch gar net oder sollte das ein scherz sein ;o

Hier mal die den "Convert Click" .. vllt sieht einer den Fehler:

Variablen
Code:
procedure TForm1.convertClick(Sender: TObject);

var search_term, text, result, del_to_sign, replace, del_string :string;
n, del_to_sign_pos, speicher, i, position, del_to_sign_pos_real:integer;
Eingaben
Code:
begin
search_term := trim(item.text) ;

if (text <> '' ) and (search_term <> '')
then
showmessage('Alles Ok !')

        else if (text = '' ) and (search_term = '')
        then
        showmessage('Eingaben überprüfen!');
Repeat Schleife
Code:

n := richedit1.Lines.Count;

repeat

//for n := 0 to richedit1.Lines.count-1 do begin
Zuweisung von Variabeln
Code:
 text := richedit1.Text ; //(richedit1.text, 0, length(richedit1.text));

begin

    if (delete_to_sign.text <> '')  then begin
    del_to_sign := trim(delete_to_sign.text);
    end;

    if (replace_with.text <> '')  then begin
    replace := trim(replace_with.text);
    end;

    Position:=Pos(search_term, text);
    del_to_sign_pos_real := (Pos(del_to_sign, text) ) ;
    del_to_sign_pos := (Pos(del_to_sign, text) - Position );

if bedingung

Code:
if ( position < del_to_sign_pos_real) AND (Pos(search_term, text) <> 0) then begin // Pos <> o wichtig !! da er sonst den anfang wieder löscht


     del_string := copy(text, position, (del_to_sign_pos)+1);

     s := StringReplace(richedit1.text, del_string, replace,[rfReplaceAll,rfIgnoreCase]);

     richedit1.text := s ;

end

  else if ( position > del_to_sign_pos_real) then begin

       del_to_sign_pos_real := (PosEx(del_to_sign, text, position) - Position);

       del_string := copy(text, position, (del_to_sign_pos_real)+1 );

       s := StringReplace(richedit1.text, del_string, replace,[rfReplaceAll,rfIgnoreCase]);

       richedit1.text := s ;

  //ShowMessage(inttostr(position)); ---> wenn nicht ausgeklammert dann klappt zumindest ein teil

  end;
Abbruchbedingung
Code:
    end;
                            //  end ;
 until (Pos(search_term, text) = 0);

   end;
komischerweise schmiert das programm nicht ab wenn ich eine "showmessage einbaue"
wenn ich diese aber auskommentiere dann schmiert er ab .. das gleiche bei den eckigen klammern
vllt ist die abbruchbedingung aber auch net so toll

edit: habe gerade noch rausgefunden, dass er mehr ersetzt als er soll wenn der string mit dem man ersetzen will länger ist als der eigentliche string den man überschreiben will
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz