webForumDet fria alternativet

Radbrytning i sträng

.NET

8 svar · 553 visningar · startad av paraxe

Medlem sedan apr. 2004298 inlägg
Frågan#1

Tja.. Som fortsättning från denna tråd http://www.webforum.nu/showthread.php?s=&postid=1017001#post1017001 så har jag problem med radbrytning.

För att testa så la jag texten i web.config. Jag vill ju helst använda mig av Environment.NewLine men hur?

Tänkte då om jag kan Replaca("\n") men det tycks inte fungera.

<add key="ConfirmFooter" value="Testtext bla bvla  \n Tack \n TACK TACK"/>
body += ConfigurationSettings.AppSettings["ConfirmFooter"];
				body = body.Replace("\n", Environment.NewLine);

Eller ska jag göra på nåt annat sätt?

Mvh

Pär

Medlem sedan jan. 20013 341 inlägg
#2

red.
Läste inte ordentligt :)

Medlem sedan juli 2003465 inlägg
#3

är det inte bara att replaca med

chr(10) & chr(13)
Medlem sedan apr. 2004298 inlägg
#4

Löste det genom ..

<add key="ConfirmFooter" value="Bla bla bluttan blä [newLine]Tack [newLine]TACK TACK"/>
body = body.Replace("[newLine]", Environment.NewLine);

/pär

Medlem sedan juni 20008 205 inlägg
#5

Annars borde(?) det funka med:

<add key="ConfirmFooter" value="Bla bla bluttan blä &amp;#13;Tack&amp;#13;TACK TACK"/>

Så att du slipper tänka själv på om det är några radbyrtningar eller inte.

Medlem sedan apr. 2004298 inlägg
#6

Tyvärr :(

Då blir det som den bifogade bilden... Även om jag går igenom alla Thunderbirds inställnigar för hur mailet kan visas.

MailMessage mail = new MailMessage();
			mail.To = "namn@domaän.se";
			mail.From = "namn@domaän.se";
			mail.Subject = "this is a test email.";
			mail.BodyFormat = MailFormat.Text;
			mail.Body = "Bla bla bluttan blä #13;Tack&#13;TACK TACK";
			SmtpMail.SmtpServer = "smtp.domän.se";  
			SmtpMail.Send( mail );

Hälsn. Pär

spango.jpg
Medlem sedan juni 2004533 inlägg
#7

Det du ska ersätta är inte en radbytning "\n", utan en sträng som består av ett bakstreck och tecknet n. Ett bakstreck får du skriva med dubbla bakstreck eftersom det är escape-tecken.

body = body.Replace("\\n", Environment.NewLine);

Medlem sedan juni 20008 205 inlägg
#8

paraxe skrev:

Tyvärr :(

Då blir det som den bifogade bilden... Även om jag går igenom alla Thunderbirds inställnigar för hur mailet kan visas.

MailMessage mail = new MailMessage();
			mail.To = "namn@domaän.se";
			mail.From = "namn@domaän.se";
			mail.Subject = "this is a test email.";
			mail.BodyFormat = MailFormat.Text;
			mail.Body = "Bla bla bluttan blä &amp;#13;Tack&amp;#13;TACK TACK";
			SmtpMail.SmtpServer = "smtp.domän.se";  
			SmtpMail.Send( mail );

Ja, men det beror på att &#13; är XML-entiteten för newline. XML-parsern översätter från entitet till faktiskt tecken, så av naturliga skäl funkar det inte när du använder det i vanlig programkod. Fast nu när jag tänker efter är det ju faktiskt alldeles utmärkt tillåtet att bryta rad mitt i ett attribut, om man känner för det:

<add key="ConfirmFooter" value="Bla bla bluttan blä 
Tack 
TACK TACK"/>
Medlem sedan apr. 2004298 inlägg
#9

spango skrev:

<add key="ConfirmFooter" value="Bla bla bluttan blä 
Tack 
TACK TACK"/>

Tack, jag känner faktiskt för det!

/pär

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)