Testo a capo in una stringa

sabato 25 agosto 2007 - 20.07

Giovanni_3478 Profilo | Senior Member

Ciao

Uso VB.Net 2.0 e SQLExpress 2005


Ho una tabella "mytable" con campi "id" e "contenuti"
e ho un richtextbox.

Quando salvo del testo
ad esempio
"Il premier Karamanlis punta l'indice contro i colpevoli: "Tanti incendi nello stesso momento e nello stesso posto non possono essere una coincidenza". Secondo quanto comunicato dalla Farnesina, tra le vittime o i coinvolti non ci...."
in "contenuti",
al testo vengono aggiunti nel record del db dei "quadratini" quando il testo va a capo.

Quando leggo il testo dal db con
dt1.Rows(i).Item(j).ToString
i quadratini scompaiono.

Nel mio applicativo,
ho aggiunto la funzione ricerca,
per cui il risultato della ricerca viene visualizzato in un richtextbox, in questo modo:
TESTO RICERCA: Karamanlis
RISULTATO RICERCA: "[in blu]Il premier[/in blu] [in rosso]Karamanlis[/in rosso] [in blu]punta l'indice contro i colpevoli: "Tanti incendi nello stesso momento e nello stesso posto non possono essere una coincidenza". Secondo quanto comunicato dalla Farnesina, tra le vittime o i coinvolti non ci....[/in blu]"

La proprietà rtf (che dà il risultato ricerca) è stata settata di logica così:

strRtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue128;}\viewkind4\uc1\pard\f0\fs17 " & Testo(cioè dt1.Rows(i).Item(j).ToString).

Il problema è che il testo cioè (dt1.Rows(i).Item(j).ToString)
"[in nero]Il premier[/in nero] [in rosso]Karamanlis[/in rosso] [in nero]punta l'indice contro i colpevoli: "Tanti incendi nello stesso momento e nello stesso posto non possono essere una coincidenza". Secondo quanto comunicato dalla Farnesina, tra le vittime o i coinvolti non ci....[/in nero]"
non rispetta i ritorni a capo.

I ritirni a capo in rtf si esprimono con "\\par"

C'è un modo per leggere dal db i ritorni a capo
o comunque per individuare in una stringa i ritorni a capo,
per poi esportarli nella proprietà rtf di un richtextbox?

SSUPERPIPPO Profilo | Guru

Non mi sono mai inoltrato particolarmente in gestione di testi RTF però so che se salvi in formato testo, il valore da intercettare per l'accapo è composto da due bytes (ASCII 13 + ASCII 10), mentre se salvi in formato RTF devi cercare nel file il tag RTF di quattro bytes che identifica l' acapo: "/par".

Salvando tu il dato in un campo del database, credo che la soluzione sia quella di intercettare (ASCII 13 + ASCII 10).

Fammi sapere, ciao

Alessandro

Giovanni_3478 Profilo | Senior Member

ho provato a fare delle ricerche su Google e sulla msdn

Credo che bisogna usare il namespace system.text
e codificare e decodificare la stringa.

Non lo so...

Giovanni_3478 Profilo | Senior Member

Ciao

Ho risolto così

Dim ACapo As String = Environment.NewLine.ToString()
strTotal = Replace(strTotal, ACapo, "\par ", , , CompareMethod.Binary)

Ho creato una stringa con Environment.NewLine.ToString() che corrisponde all'acapo cioè a quei 2 famosi quadratini.

E dopo ho fatto un replace.


Ciao

SSUPERPIPPO Profilo | Guru

Ci stavo arrivando anch'io.... bravo!

Ciao

Alessandro

Giovanni_3478 Profilo | Senior Member

;)

Ciao

Giovanni
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5