webForumDet fria alternativet

Problem med Newlines

13 svar · 692 visningar · startad av echoSwe

echoSweMedlem sedan nov. 20041 189 inlägg
#1

Tja

Har lite problem att byta ut "\n" mot "<br />" och "\n\n" mot "</p><p>". Min kod ser ut såhär.

private string htmlalize(string str)
{
	str = "<p>"+str+"</p>";
	str.Replace("\n\n", "</p><p>");
	str.Replace("\n", "<br />");
	return str;
}

Någon som kan hjälpa mig lite nu? Tycker ni att jag ska göra detta innan det går in i databasen eller efter, när man ska visa det i läsaren?

aleborgMedlem sedan jan. 20013 341 inlägg
#2

Det beror på om det ska användas i mail eller i något annat sammanhang där \n behövs. Behöver du någon gång använda \n så gör det efter annars innan.

emissionMedlem sedan dec. 19996 721 inlägg
#3

Den praxis som förespråkas mest (även här på wF) är att man alltid gör ersättningarna när man ska visa informationen. Det är en bra praxis, eftersom den ersättning du visar är väldigt enkel, men om man vill gå åt andra hållet eller kanske formatera något lite annorlunda, så blir det väldigt jobbigt om texten redan är i HTML-format.

echoSweMedlem sedan nov. 20041 189 inlägg
#4

Jag vill byta ut alla radbrytningar i en databas till <br /> taggar när dokumentet laddas.
Men koden jag postade vill inte fungera.
Kan någon hjälpa mig med det?

DinoMedlem sedan sep. 20011 914 inlägg
#5
private string htmlalize(string str)
{
	str = "<p>"+str+"</p>";
	str = str.Replace("\n\n", "</p><p>");
	str = str.Replace("\n", "<br />");
	return str;
}
echoSweMedlem sedan nov. 20041 189 inlägg
#6

Emission svarade på en del och dino på en del.
Tack för svaren

VimpMedlem sedan juli 20022 537 inlägg
#7

Ett tips: Kör med Environment.NewLine Istället för \n.

echoSweMedlem sedan nov. 20041 189 inlägg
#8

Varför det?

VimpMedlem sedan juli 20022 537 inlägg
#9

\n är specifikt för C#, vbCrLf är för VB.NET, men i .NET så är det iaf Environment.NewLine som är det "riktiga" även om man _kan_ använda andra sätt.

Environment innehåller förresten en del skoj, ta en titt på det. :)

echoSweMedlem sedan nov. 20041 189 inlägg
#10

Ja, det finns lite där ja... Men båda javascript, flash/AS, och c++ som jag tidigare har eller jobbar i använder \n, inkl. reguljära uttryck, om jag inte har helt fel ;). Sedan använder jag bara C#, eftersom jag blev ruskigt trött på VB efter ASP3.0.
Annars har du väl rätt.

echoSweMedlem sedan nov. 20041 189 inlägg
#11

Nu undrar jag även hur man gör för att använda en funktion som man kan har i en egen .cs fil...

Säg att jag har en fil med namespace Henrik, där jag har lagt in en funktion, htmlalize här... Den vill jag kunna använda från andra sidor och user-controls. Hur gör jag för att kunna detta?

Så i min code-behind:
using Henrik;

namespace hafse
{
public class blog : System.Web.UI.Page
{
private void BindPost(string id){
...
binder.text= htmlalize ( (string)objDS. ... .Rows[0]["text"] );
}
}
}

emissionMedlem sedan dec. 19996 721 inlägg
#12

Vimp skrev:

Ett tips: Kör med Environment.NewLine Istället för \n.

Kanske. Det är ju faktiskt inte samma sak. Vill man specifikt ersätta "\n" så är det "\n" man ska använda. Environment.NewLine är, som namnet antyder, något som är knutet till vilken miljö programmet körs i. Under Windows returnerar NewLine "\r\n" (Carriage return och Line feed = CrLf), men om man kör med Mono i t.ex. Linux eller MacOS X så är NewLine endast "\n" (och om någon skulle lyckas porta .NET till MacOS 9, så skulle det vara endast "\r")

I praktiken fungerar det säkert mycket bra (bättre) att använda NewLine i detta fall, men det är viktigt att veta skillnaden

vbCrLf != "\n" != Environment.NewLine och endast i Windows är vbCrLf==Environment.NewLine

echoSweMedlem sedan nov. 20041 189 inlägg
#13

Så vad ska jag använda för att processera input från formulär på webben?

emissionMedlem sedan dec. 19996 721 inlägg
#14

Glömde bort dig... :)

Om du ersätter bara "\n" så är du på den säkra sidan, men i praktiken kommer det nog nästan alltid att fungera bra med NewLine.

254 ms totalt · 3 externa anrop · v20260731065814-full.30151723
128 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)