Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Eliminare una riga di ritorno a capo con codice <p>&nbsp:</p>

    Salve a tutti
    ho una situazione di questo tipo in un articolo con codice
    <p>[ad]</p>
    <p>&nbsp;</p>

    ho questo codice in c# che dovrei modificare per togliere da tutti i miei articoli la seconda riga in cui c'è <p>&nbsp;</p>
    In pratica se phIndex != -1 dovrei togliere la seconda riga
    come posso fare???

    questo è il codice da modificare, mi aiutate?? A disposizione per maggiori informazioni!

    codice:
    <%@ Page Language="C#" %>
    
    <%@ Import Namespace="BlogEngine.Core" %>
    
    <script runat="server">
    
        protected void Button1_Click(object sender, EventArgs e)
    
        {      
    
            var posts = Post.Posts;      
    
             var placeHolder = "[ad]"; //If this is what you see in post editor(assuming no tag wrapper);
    
            var phIndex = -1;
    
            for (int i = 0; i < posts.Count; i++)
    
            {
    
                Post p = posts[i];
    
                phIndex = p.Content.IndexOf(placeHolder, p.Content.IndexOf(placeHolder)+1);
    
                if (phIndex != -1)
    
                {               
                   //codice da modificare
                   p.Content = p.Content.Substring(0, phIndex) + p.Content.Substring(phIndex + placeHolder.Length);
    p.Content = p.Content.Insert(phIndex, "[ad]");
                    p.Save();
    
                 }
    
            }
    
        }
    
    </script> 
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Height="100px"
                Text="Insert ads" Width="166px" onclick="Button1_Click" />
        </div>
        </form>
    </body>
    </html>

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    in pratica ogni post è una stringa

    <p>[ad]</p><p>&nbsp;</p>

    e tu devi togliere il secondo paragrafo (<p>) da ognuno, nel ciclo ?

  3. #3
    Ciao djciko
    no non tutti i post iniziano cosi io dovrei identificare tutti quelli che iniziano con
    <p>[ad]</p>
    e togliere la seconda riga
    <p>&nbsp;</p>

    grazie

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    non capisco la difficolta'

    codice:
    string p = "<p>[ad]</p><p>&nbsp;</p>"; // esempio del tuo "p.content"
    
    
    if (p.IndexOf("[ad]") != -1) {
       string p_senza_accapo = p.Replace("<p>&nbsp;</p>", "");
    }

    sicuramente non ho capito io il problema

  5. #5
    Sei sicuro che in questo modo non cancello anche tutte le altre righe dove c'è
    <p>&nbsp;</p> ???

    L'articolo è così
    <p>[ad]</p>
    <p>&nbsp;</p>
    <p>inizio articolo..........</p>
    <p>&nbsp;</p>
    ecc...

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ah, devi togliere solo la prima occorrenza dello spazio, giusto ?

    non lo avevi detto che c'era altro nel post dopo quelle due righe....hai scritto:
    Salve a tutti
    ho una situazione di questo tipo in un articolo con codice
    <p>[ad]</p>
    <p>&nbsp;</p>

  7. #7
    Si sotto c'� tutto l'articolo, scusami. Per cui potresti trovare un'altra riga con <p>&nbsp;</p>
    IL codice dovrebbe vedere se esiste nella prima riga [ad] e se nella seconda c'� <p>&nbsp;</p>. Se c'� deve cancellarlo altrimenti non fare nulla.

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    direi piuttosto che il codice deve cancellare solo la prima occorrenza del ritorno a capo in quei casi, tutto qui...

  9. #9
    Ho fatto così il problema è che facendo replace (con il comando string p_senza_accapo = p.Content.Replace("<p>&nbsp;</p>", "")

    mi cancella tutti i <p>&nbsp;</p> dell'articolo e non va bene!!! Come posso dirgli di cancellare solo il primo <p>&nbsp;</p> che trova?

    codice:
            for (int i = 0; i < posts.Count; i++)
            {
                
                Post p = posts[i];
                phIndex = p.Content.IndexOf(placeHolder);
                
                if (phIndex != -1)
                {            
                             
                // Response.Write(phIndex);
                if (p.Content.IndexOf("[ad]") != -1)
                 {
                            
                string p_senza_accapo = p.Content.Replace("<p>&nbsp;</p>", "");
    
                p.Content = p.Content.Substring(0, phIndex) + p_senza_accapo + p.Content.Substring(phIndex + placeHolder.Length);                      
                                    
                p.Save();
                }
             
                }
    
            }
    Ultima modifica di djciko; 30-11-2016 a 17:54

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    se la scritta AD è solo una, basta rimpiazzare:

    <p>[ad]</p><p>&nbsp;</p>


    con:

    <p>&nbsp;</p>


    se NON è solo una, c'e' un altro metodo che ora, essendo le 20:50, mi sfugge (ma tendo a pensare sempre agli array derivanti dal metodo Split)

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.