Analizzare una stringa in vb.net

giovedì 01 febbraio 2007 - 12.55

Bohemian_Rhapsody Profilo | Newbie

Salve a tutti!
Dovrei risolvere il seguente problema:
devo eliminare da una stringa tutte le sottostringhe di questo tipo " ".
Come posso realizzare il tutto in vb.net?

Ringrazio anticipatamente per le eventuali risposte.

alextyx Profilo | Expert

Dovresti risolverlo con il metodo 'replace' sostituendo alla tua sottostringa, una stringa vuota ("")

us01739 Profilo | Expert

Prova così:
dim pippo as string
If pippo.Contains(" ") Then pippo = pippo.Replace(" ", "")


Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

Bohemian_Rhapsody Profilo | Newbie

Io ho utilizzato il tuo consiglio, ma non sono riuscito a risolvere il mio problema.
Il mio codice è questo:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

'Dichiaro il DataTable
Dim EmailRef As New DataTable()

'creo una connessione al Database
Dim objConn As New SqlConnection("Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;")
objConn.Open()

'chiamo la procedure
Dim objCmd As New SqlCommand("YourCompany_GetIndirizzi", objConn)
objCmd.CommandType = CommandType.StoredProcedure

' da è l'adapter, permette di raccordare i dati nel dt (datatable disconnesso)
Dim da As New SqlDataAdapter(objCmd)

' riempio il datatable
da.Fill(EmailRef)


' chiudo la connessione (non mi serve più)
objConn.Close()

'Dichiaro il DataTable
Dim Corpo As New DataTable()


'creo una connessione al Database
Dim objConn1 As New SqlConnection("Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;")
objConn1.Open()

'chiamo la procedure
Dim objCmd1 As New SqlCommand("YourCompany_GetCorpo", objConn1)
objCmd1.CommandType = CommandType.StoredProcedure

' da è l'adapter, permette di raccordare i dati nel dt (datatable disconnesso)
Dim dat As New SqlDataAdapter(objCmd1)

' riempio il datatable
dat.Fill(Corpo)


' chiudo la connessione (non mi serve più)
objConn.Close()

Dim myArray As String()
Dim i As Int32 = 0
Dim row As DataRow

'popoli il DataTable con una query che torna una colonna "indirizzo", ad esempio.

If Not EmailRef Is Nothing AndAlso EmailRef.Rows.Count > 0 Then
ReDim myArray(EmailRef.Rows.Count)
For Each row In EmailRef.Rows

myArray(i) = row("Email")
Dim mail As New MailMessage()

'set the addresses
mail.From = New MailAddress("domenico.caldaola@alice.it")
mail.To.Add(myArray(i))

'set the content
mail.Subject = "Prova"

Dim Stringa As Object
Stringa = Corpo.Rows(0).Item(0)

mail.Body = Stringa.Replace("&lt;", "<").Replace("&gt;", ">")

If Stringa.Contains("&nbsp;") Then
Stringa = Stringa.Replace("&nbsp;", "")
End If

mail.IsBodyHtml = True

'send the message
Dim smtp As New SmtpClient("mio smtp")
smtp.Send(mail)

i += 1
Next
End If

Catch ex As Exception
ProcessModuleLoadException(Me, ex)
End Try

End Sub

alextyx Profilo | Expert

Non so a chi ty ti riferisca, perchè alla fine ti abbiamo dato + o - lo stesso consiglio.
Non ho neppure capito cosa non funziona.
Restringiamo il problema. Di tutto il codice che hai allegato ci servono 2 righe, sulle quali devi procurare di scorrere un passo alla volta e controllare l'evoluzione del valore della stringa:

If Stringa.Contains("&nbsp;") Then
Stringa = Stringa.Replace("&nbsp;", "")

Personalmente ritengo che lo if sia un inutile overhead, perchè mi sembra (se invece mi sbaglio allora ci vuole lo if) che un'assenza della sottostringa da rimpiazzare, non causi alcun errore e quindi ridurrei a:

Stringa = Stringa.Replace("&nbsp;", "")

però ora ti può essere utile, perchè se metti un break sulla riga, significa che sicuramente contiene la sottostringa e quindi è un caso buono da analizzare.

Cosa accade su questa riga?
Descrivici il problema!

Bohemian_Rhapsody Profilo | Newbie

Alllora io in Stringa vado a salvare il contenuto di una mail che ha un testo formattato e delle immagini. Il body della mail lo creo tramite un texteditor fornitomi da DotNetNuke. Il texteditor mi salva nel database il cntenuto espresso in HTML. Io ho solo bisogno di eliminare &nbsp; dal contenuto.

alextyx Profilo | Expert

Sì, infatti, quello che ti chiedo è proprio di EVITARE di raccontarci vita morte e miracoli di quella stringa!
Non è importante chi è, da dove viene e dove è diretta, ma solo cosa le accade in quella precisa riga. Hai analizzato la cosa procedendo con un debug a step?
Se non lo hai fatto, fallo!
Metti un break sulla riga del replace, controlla cosa contiene la stringa, controlla cosa ti restituisce il metodo replace ( ciò che sta a destra dell'uguale ) e se effettivamente, all'uscita da quella riga, la stringa ha avuto la giusta elaborazione. Anzi sarebbe bene che tu postassi anche la stringa che usi come test.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5