webForumDet fria alternativet

Radbrytnings function i C#

.NETur .NET

4 svar · 364 visningar · startad av StefanP

Medlem sedan jan. 200284 inlägg
Frågan#1

Hejsan.
Hur gör jag en radbrytningsfunction i C#?
Samt hur skriver jag sen ut data med functionen inkluderad.

som i asp kör man tex <%=radbryt(RS("text"))%> om man har gjort en function som heter "radbryt"

Mvh

Medlem sedan juni 20011 732 inlägg
#2

Om du bara ska göra en eadbrytning efter ett visst antal tecken och skiter i om orden bryts mitt i så är det bara att göra en myString.Insert(start index, string value) och loopa igenom strängen.

Lite snyggare är det kanske att bryta raden i första mellanslaget efter ett visst antal tecken. Så här nånting kanske:

//Det antal tecken där raden ska brytas
int i=40;

//Så länge det finns tecken kvar i strängen
while (i<myString.Length) {

//Räknar fram första mellanslaget efter i tecken
och lägger in en <br>.
  myString = myString.Insert(myString.IndexOf(" ",i),"<br>");

//Plussa på i med 44 tecken efter sista radbrytningen
(44 därför att i=40 vid start blir 44 tecken när du lagt
till en <br>-tagg som ju innehåller 4 tecken till...
  i=(myString.LastIndexOf("<br>"))+44;
}
Medlem sedan juni 20011 732 inlägg
#3

Snyggast är förstås om du skapar en egen klass och verkligen utnyttjar det trevliga i riktig OO-programmering. :)


//Din klass:

public class myClass {
  public static string myFunction(string myString) {
    int i=40;
      while (i<myString.Length) {
        myString = myString.Insert(myString.IndexOf(" ",i),"<br>");
        i=(myString.LastIndexOf("<br>"))+44;
      }
     myString = myString.TrimEnd();
     return myString;
    }
}

//Sen är det bara att skicka in vilken sträng som helst, 
när som helst, var som helst:

myClass.myFunction(myString);

Att arbeta med funktioner och klasser på det här sättet är överlägset gammal ASP-kod. Du får en oerhört mycket bättre struktur på dina sidor. Ett tips är att skapa ett eget namespace innehållande klasser med vanliga funktioner som du använder om och om igen. Utvecklingsarbetet blir väldigt mycket mer effektivt på det sättet!

Medlem sedan jan. 200284 inlägg
#4

Ok

Detdär ser bra ut men jag vill veta hur man gör en function som lägger in <br> när jag trycker "enter" i nyhetsscriptet.
Inte efter antal tecken utan direkt vid enterslag.

Skriv gärna lite vad varje del gör så jag förstår.

Medlem sedan juni 20011 732 inlägg
#5

Aha, det är enkelt. Inte mycket att skriva om, du förstår säkert ändå:

mystring = myString.Replace("\n","<br>");

...och ska du lägga tillbaka texten i ett formulär igen men inte vill skriva ut <br>-taggarna så gör du bara tvärtom.

mystring = myString.Replace("<br>","\n");

140 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)