246 messaggi dal 29 settembre 2009
Ciao a tutti

mi sto cimentando nell'esportazione in csv di una gridview e diciamo che sono a buon punto ma ho dei problemi con la classe StringBuilder. Vi posto solamente la riga di codice che mi crea problemi

//sb è di tipo StringBuilder e CsvNewLine contine il seguente 
//valore "\r\n"
sb.Append(ConfigurationManager.AppSettings["CsvNewLine"]);


il risultato che ottengo è che durante l'esportazione il valore di CsvNewLine mi viene stampato come testo e non come mandata a capo..

La cosa piu strana è che se scrivo invece
sb.Append("\r\n");

il tutto come per magia funziona alla perfezione.....

Non riesco proprio a capire perche questo passaggio di valori causa questo strano funzionamento ...
Modificato da claudio_dg il 23 gennaio 2012 10.14 -
Credo che succeda perchè quando leggi la stringa dal file di configurazione, tramite ConfigurationManager.AppSettings["CsvNewLine"], il valore viene interpretato come stringa a tutti gli effetti, quindi come "\\r\\n"...
Non la trovo una soluzione "elegante", ma potresti fare un banale replace.

Gianluca
http://www.gianlucaesposito.it
5.390 messaggi dal 09 febbraio 2002
Contributi
giaesp ha scritto:
il valore viene interpretato come stringa a tutti gli effetti, quindi come "\\r\\n"...

sì, infatti il valore è proprio una stringa di 4 caratteri composta da backslash-r-backslash-n. Questo si verifica perché il file .config è un file XML e lì il meccanismo di escaping dei caratteri speciali è differente da quello usato in C#. Il backslash non assume un significato particolare, e quindi viene trattato letteralmente.

Come in HTML si possono usare le entities. Un a-capo formato da carriage return (\r) e line feed (\n) si può rapprensentare così:
<add key="CsvNewLine" value="&#x0D;&#x0A;" />
Ma anche in notazione decimale funziona lo stesso
<add key="CsvNewLine" value="&#13;&#10;" />

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!
246 messaggi dal 29 settembre 2009
grazie mille ad entrambi ora la cosa funziona ed è pure elegante ;)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC