Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

stringreplace (String > 255 zeichen) geht nicht ..

  Alt 7. Jun 2017, 12:38
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\
/ \
  Mit Zitat antworten Zitat