Manipolazione stringhe
monaco91 non è online. Ultima attività: 02/06/2008 18.36.42monaco91
Inserito il: 07 maggio 2008 15.24
www.istes.com / 3 messaggi dal 07 mag 2008 Istalla Microsoft Silverlight!
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?
Microsoft Most Valuable Professional
Re: Manipolazione stringhe
andrewz non è online. Ultima attività: 07/08/2008 17.49.03andrewz
Inserito il: 07 maggio 2008 16.12
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2682 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
Usa il 10.

Ciao
.

Andrea Zani (sciancato)
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Re: Manipolazione stringhe
monaco91 non è online. Ultima attività: 02/06/2008 18.36.42monaco91
Inserito il: 07 maggio 2008 17.53
www.istes.com / 3 messaggi dal 07 mag 2008 Istalla Microsoft Silverlight!
andrewz ha scritto:
Usa il 10.

Ciao
.


Ho provato, ma non ho risolto il mio problema.

Qualcuno ha altre soluzioni?
Microsoft Most Valuable Professional
Re: Manipolazione stringhe
andrewz non è online. Ultima attività: 07/08/2008 17.49.03andrewz
Inserito il: 07 maggio 2008 18.00
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2682 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
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

Andrea Zani (sciancato)
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Re: Manipolazione stringhe
pietro09 non è online. Ultima attività: 07/08/2008 20.55.18pietro09
Inserito il: 07 maggio 2008 21.09
Top Poster / 1380 messaggi dal 28 gen 2003 Istalla Microsoft Silverlight!
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 -

Pietro
Microsoft Most Valuable Professional
Re: Manipolazione stringhe
andrewz non è online. Ultima attività: 07/08/2008 17.49.03andrewz
Inserito il: 08 maggio 2008 09.10
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2682 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
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
.

Andrea Zani (sciancato)
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Re: Manipolazione stringhe
pietro09 non è online. Ultima attività: 07/08/2008 20.55.18pietro09
Inserito il: 08 maggio 2008 09.19
Top Poster / 1380 messaggi dal 28 gen 2003 Istalla Microsoft Silverlight!
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

Pietro
Re: Manipolazione stringhe
monaco91 non è online. Ultima attività: 02/06/2008 18.36.42monaco91
Inserito il: 11 maggio 2008 15.58
www.istes.com / 3 messaggi dal 07 mag 2008 Istalla Microsoft Silverlight!
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

Vai a:
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.


fabrica - 521 pt
vladimiro - 510 pt
stefanomnn - 242 pt

Ultimi vincitori: PeppeDotNet, fabrica, vladimiro

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums