Richtext carattere in più

di Anonimizzato30302 il
6 risposte
Buongiorno,

ho inserito dentro ad una string un testo. dopodichè ho usato la function Copyrichtext, solo che inserisce un carattere nuovo che non è presente nella stringa originale stavo cercando di eliminarla essendo che se no ogni volta che copio la stringa in un file di testo bisogna eliminare il carattere. c'è un modo per farlo? avevo pensato di utilizzare il comando asii per l'eliminazione del campo se ho visto bene era #127, ma non funziona

avete altre idee? ho usato richtext per la formattazione

6 Risposte

  • Comando asii??
  • Si ad esempio #13#10 é linea a capo
  • f.developer ha scritto:


    dopodichè ho usato la function Copyrichtext, solo che inserisce un carattere nuovo che non è presente nella stringa originale stavo cercando di eliminarla essendo che se no ogni volta che copio la stringa in un file di testo bisogna eliminare il carattere. c'è un modo per farlo? avevo pensato di utilizzare il comando asii per l'eliminazione del campo se ho visto bene era #127, ma non funziona
    Riporta il codice che hai scritto, quantomeno le parti significative, assieme un esempio del testo formattato che stai cercando di scrivere e del risultato che invece ottieni sul file.
  • 
    	Testo := Testo + 'il codice iooi pio iop p pp ipo \line '+
    	'yyaugtyut uy tg gg zyg gy ';
    	
    	CRichText('\fs22 ' + Testo);
    	Testo := ReplaceText(Testo, '\line', #13#10);
    	
    procedure CRichText(AText: string);
    var
       CF_RICHTEXT: UINT;
    begin
       CF_RICHTEXT := RegisterClipboardFormat('Rich Text Format');
       CopyData(TEncoding.ANSI.GetBytes(AText), CF_RICHTEXT);
    end;
    
  • Secondo me, l'errore si annida in questo punto:

    f.developer ha scritto:


    
       CopyData(TEncoding.ANSI.GetBytes(AText), CF_RICHTEXT);
    
    E' possibile che l'encoding ANSI non sia quello corretto da utilizzare.

    Io proverei un encoding differente, ad esempio quello comunemente in uso sulle nostre macchine, il Windows-1252, creandolo in questo modo:
    TEncoding.GetEncoding(1251)
    Per un approfondimento relativamente al tipo TEncoding e alla problematica in generale, partirei dalla documentazione.

    Ciao!
  • f.developer ha scritto:


    Si ad esempio #13#10 é linea a capo
    Vuoi dire ASCII ... e non è un comando ...
Devi accedere o registrarti per scrivere nel forum
6 risposte