FAQ |
Kalender |
2009-04-05, 15:30 | #1 | |||
|
||||
Flitig postare
|
Jag har en sträng som jag vill kunna ha "stoppord" i. Om stoppordet finns vill jag dela upp strängen till delen före- och efter stoppordet.
Så här skulle det kunna se ut vid de tillfällen stoppordet finns: Kod:
//C# string htmlBody = "<h1>Karta</h1><!-- Karta-00001 --><p>Ovan kan du se en karta för...</p>"; Min tanke är att kunna byta ut kommentaren mot en usercontrol som innehåller kartan. Tips eller kodexempel mottages tacksamt. |
|||
Svara med citat |
2009-04-05, 16:33 | #2 | ||
|
|||
Har WN som tidsfördriv
|
|||
Svara med citat |
2009-04-05, 17:03 | #3 | |||
|
||||
Flitig postare
|
Tror jag har löst det, eller åtminstone kommit förbi mitt största hinder.
Postar testkoden så om du har kommentarer att ge så... RightBack/LeftBack returnerar SubString klippt antingen från vänster eller höger. Kod:
protected void Page_Load(object sender, EventArgs e) { string htmlBody = "<h1>Karta</h1><!-- Karta-00000001 --><p>Ovan kan du se en karta för...</p>"; StringBuilder sb = new StringBuilder(); sb.Append(Server.HtmlEncode(htmlBody) + "<br />\n"); sb.Append(CheckForMap(htmlBody).ToString() + "\n"); sb.Append("<br />\n"); sb.Append(returnMap(htmlBody)); litOut.Text = sb.ToString(); } protected bool CheckForMap(string input) { bool val = false; if (input.Contains("<!-- Karta-")) { val = true; } return val; } protected string returnMap(string input) { string retVal = string.Empty; Regex r = new Regex("(<!-- Karta-)"); string[] s = r.Split(input); if (s[2] != null) { retVal = "<pre>" + wf.Util.RightBack(s[2], s[2].Length - 12) + "</pre>\n"; //kollar kartans id retVal += "<br /><pre>Kartans id: " + wf.Util.LeftBack(s[2], 8) + "</pre>\n"; } return retVal; } |
|||
Svara med citat |
2009-04-05, 18:32 | #4 | ||
|
|||
Mycket flitig postare
|
http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx en oneliner..
|
||
Svara med citat |
2009-04-05, 18:53 | #5 | |||
|
||||
Flitig postare
|
Citat:
|
|||
Svara med citat |
2009-04-05, 22:34 | #6 | ||
|
|||
Har WN som tidsfördriv
|
Detta tror jag löser ditt problem. Du får det i vb.net men du fixar nog detta.
Citat:
|
||
Svara med citat |
2009-04-06, 09:37 | #7 | |||
|
||||
Mycket flitig postare
|
Regexp är konstruerat för just den här typen av problem - gör ett regexp-replace hur det nu kan tänkas se ut i ditt språk.
|
|||
Svara med citat |
2009-04-06, 09:52 | #8 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
|
||
Svara med citat |
2009-04-06, 18:37 | #9 | ||
|
|||
Flitig postare
|
Det går, man använder delegater. Skickar in en delegate, dvs. en pekare på en funktion, istället för en textsträng. Man kan plocka alla delarna i matchningen i realtid och ersätta texten, hur smidigt som helst. Och med anonyma delegater blir koden riktigt fin
|
||
Svara med citat |
2009-04-07, 09:02 | #10 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
|
||
Svara med citat |
Svara |
|
|