8 messaggi dal 07 maggio 2008
www.istes.com
Salve a tutti mi sono appena iscritti perchè ho problema con la manipolazione di stringhe, è sicuramente una cosa da poco, ma non so come fare :(

Ho una textarea da cui estrapolo una stringa da mettere in un campo di un record, ma quando l'utente clicca il tasto invio per andare a capo in questa textarea, ovviamente non viene riconosciuto e nel record viene memorizzata la stringa senza return. Il punto è: come faccio individuare i return e a sostituirli con un <br/> (il br viene processato successivamente dal browser)?


Ho provato con la funzione replace...

Dim nickname, messaggio As string
nickname = Session ("Nickname")
messaggio = Request.Form ("Messaggio")
Replace(messaggio,chr(13),<br/>) 'Il codice ascii dell'invio è 13 vero? XD

ma non ha funzionato..

come fare ragazzi?
8 messaggi dal 07 maggio 2008
www.istes.com
andrewz ha scritto:
Usa il 10.

Ciao
.


Ho provato, ma non ho risolto il mio problema.

Qualcuno ha altre soluzioni?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
E' il 13 (CR) o il 10 (line feed). Altre vie non ci sono

Il problema è nel tuo codice, scrivi:

messaggio=Replace(messaggio,chr(13),"<br/>")

Oppure:
messaggio=Replace(messaggio,chr(10),"<br/>")

Ma il "10" è più sicuro (alcuni SO trattano il ritorno a capo con il singolo code LF.

Ciao
3.939 messaggi dal 28 gennaio 2003
Non so: ho provato ma sinceramente non vedo dove sia il problema.

Se scrivo dentro un TextArea, per esempio (uso il return per andare a capo):

a
b
c<b>prova</b>

Nel database (Access nel mio caso) ci va tutta la stringa. Il separatore riga, come detto è il 0D 0A o, qualche volta solo lo 0A


Quando rileggo il dato (sto provando con un ListView), in fase di editing lo visualizzo in un TextArea

<td><asp:TextBox runat="server" ID="memo" Text='<%#Eval("memo")%>' TextMode="MultiLine" Rows="4"></asp:TextBox></td>

e lo vedo senza problemi esattamente come l'ho scritto.


In fase di visualizzazione invece, debbo sostituire il separatore riga con <br/>

<td><%#l.NullToStringCodificato(Eval("memo")).Replace(ControlChars.NewLine, "<br/>").Replace(ControlChars.Lf, "<br/>")%></td>

e anche qui lo vedo esattamente come l'ho scritto.

Ciao
Modificato da pietro09 il 07 maggio 2008 21.11 -
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Hai ragione Pietro, ma spesso si usa la doppia combinazione cr+lf, e in alcuni casi il replace non funziona correttamente. Per questo che faccio come te, solo il replace di LF (10)

Ciao
.
3.939 messaggi dal 28 gennaio 2003
andrewz ha scritto:
Hai ragione Pietro, ma spesso si usa la doppia combinazione cr+lf, e in alcuni casi il replace non funziona correttamente. Per questo che faccio come te, solo il replace di LF (10)

Ciao
.



Ciao. Quello che ho scritto non deriva da questo problema, ma dalla necessità di eliminare certi caratteri "strani" per non fare andare in errore javascript, per esempio in alert(). Perciò, prima provo con 0D0A, poi con 0A, poi con 0D (meglio abbondare). E questo per il motivo che hai detto: alcuni browser fanno in un modo, altri in altri modi.

ciao
8 messaggi dal 07 maggio 2008
www.istes.com
andrewz ha scritto:
E' il 13 (CR) o il 10 (line feed). Altre vie non ci sono

Il problema è nel tuo codice, scrivi:

messaggio=Replace(messaggio,chr(13),"<br/>")

Oppure:
messaggio=Replace(messaggio,chr(10),"<br/>")

Ma il "10" è più sicuro (alcuni SO trattano il ritorno a capo con il singolo code LF.

Ciao


Effettivamente se non faccio l'assegnazione è un po difficile ^^

grazie a tutti ragazzi :D

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.