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