Hallo Leute,
Ein Stringreplace bereinigt nicht den ganzen text - wenn EINE EINZIGE ZEILE des Memos den ganzen Text beinhaltet ...
1.) lade
HTML-Nachricht in Memo1 -
2.) Memo1: zeile für zeile ein Stringreplace
3.) schreibe bereinigte Zeile in memo2
4.) Speichere Memo2
.. ich vermute die 255 Zeichen Grenze ist das Problem??? (gibt sowas überhaupt noch) ??
Was könnte ich da machen ?
Delphi-Quellcode:
unimemo1.Lines.LoadFromFile(mainform.datenpfad+'Mails\'+inttostr(zaehler1)+'\'+inttostr(nummer_integer)+'\html_' + nummer + '.html',TEncoding.UTF8);
unimemo2.Lines.Clear;
for x:=0 to unimemo1.Lines.Count-1 do
begin
unimemo2_text:= cidWeg(unimemo1.Lines[x]);
unimemo2.Lines.Append(unimemo2_text);
end;
unimemo2.Lines.savetofile(mainform.datenpfad+'Mails\'+inttostr(zaehler1)+'\'+inttostr(nummer_integer)+'\html_' + nummer + '.html',TEncoding.UTF8);
end;
Delphi-Quellcode:
function TMAILS.cidWeg(s : String) : String;
// Danke Nahpets: http://www.delphipraxis.net/192933-stringreplace-im-memo.html
var
i : Integer;
k : Integer;
begin
StringReplace(s, 'cid:', '',[rfReplaceAll]);
AnsiReplaceStr(s, 'cid:', '');
i := Pos('@',s);
if i > 0 then begin
k := PosEx('"', s, i);
if k > 0 then begin
Result := Copy(s,1,i - 1) + Copy(s,k,Length(s));
end else begin
Result := Copy(s,1,i - 1) + '"';
end;
end else begin
Result := s;
end;
end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \