devo sostituire un carattare all'interno di una stringa ma facendo così
non fa la sostituzione ma semplicemente verifica se il 2°carattere è "D"...codice:Print Mid("Ciao", 2, 1) = "D"
sarà una cavolata ma nn ci riesco!![]()
devo sostituire un carattare all'interno di una stringa ma facendo così
non fa la sostituzione ma semplicemente verifica se il 2°carattere è "D"...codice:Print Mid("Ciao", 2, 1) = "D"
sarà una cavolata ma nn ci riesco!![]()
Ciao ranza!!!123,
potresti utilizzare la funzione Replace la cui firma è la seguente:
'Replace(espressione, cerca, sostituiscicon[, inizio[, conteggio[, confronto]]])
Esempio se vuoi sostituire la "i" con la "D":
Private Sub Command1_Click()
Dim sMyString As String
sMyString = "Ciao"
Label1.Caption = Replace(sMyString, "i", "D", , 1)
End Sub
![]()
LM
scusa se rispondo solo ora..la replace già la conoscevo,ma nn riesco a fare di cambiare ad esempio la 2° lettera....
aiuto!
la funzione replace va bene
mi restituisce cxroicodice:Option Explicit Dim stringa As String Dim temp As String Private Sub Form_Load() stringa = "ciroi" temp = Mid(stringa, 2, 1) stringa = Replace(stringa, temp, "x", 1, 1 ) MsgBox stringa End Sub
in questo caso è impostato che deve sostituire sempre la seconda lettera ma ovvviamente giocando con le variabili puoi sostituire la lettera che vuoi
nel caso che tu voglia sostituire tutte le ripetizioni di quella lettera togli il neretto
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
Ciao ranza!!!123,
non ho capito con esattezza cosa vuoi fare, dato che l'esempio che ti avevo postato già funzionava. Forse vuoi cambiare la seconda lettera in assoluto, o la terza, ..., se è così ho predisposto il seguente esempio che mediante il valore di start puoi decidere la lettera da cambiare; naturalmente devi inserire (anche con una variabile stringa) la lettera in sostituzione (nell'esempio "Y"):codice:Private Sub Command1_Click() Dim sMyString As String Dim s As Integer Dim sStr As String Dim ssStr As String Dim NStr As String Dim start As Long sMyString = "Prova" start = 1 ' Acquisisce lettera per lettera: For s = 1 To Len(sMyString) Step 1 sStr = Mid(sMyString, start, 1) ssStr = ssStr & sStr start = start + 1 If start = 3 Then NStr = Replace(sMyString, sStr, "Y", 1, 1) End If Next s Label1.Caption = NStr End Sub![]()
LM
è ovvio che se metti Print, non può mai funzionare perchè chiedi di stampare il risultato del confronto.Originariamente inviato da ranza!!!123
devo sostituire un carattare all'interno di una stringa ma facendo così
non fa la sostituzione ma semplicemente verifica se il 2°carattere è "D"...codice:Print Mid("Ciao", 2, 1) = "D"
sarà una cavolata ma nn ci riesco!![]()
prova così:
codice:Stringa = "Ciao" Mid(Stringa, 2, 1) = "D" Print StringaBoolean
In realta' in VB esiste
1) la funzione Mid
2) l' istruzione Mid
Usi la funzione Mid in righe come
Print Mid("Ciao", 2, 1)
o
A = Mid("Ciao", 2, 1)
mentre, come aveva indicato Boolean, utilizzi l' istruzione Mid nella riga seguente
Mid(Stringa, 2, 1) = "D"