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

    [vb5/6]-Sostituzione lettera in una stringa AIUTO!

    Scusate la mia ignoranza ma è poco ke uso vb... Sono abituato con c++ e assembler

    Cmq... volevo chiedere... se io ho una stringa [esempio la parola "CIAO"] e volessi sostituire il 3 carattere con un carattere ke voglio io, c'è una funzione ke me lo fa?? e se si ke funzione devo usare???

    Esempio... Parola "CIAO"
    devo sostituire il terzo carattere con la lettera "U"
    Stringa finale ke voglio = "CIUO"

    So ke esiste la funzione Mid ma quella mi restituisce il valore ovvero il carattere la/e lettera/e ke dico io.. ma non me le sostituisce!

    Grazie ankora in anticipo, spero in una risposta ne ho urgente bisogno!

  2. #2
    Ciao ,
    esiste la funzione instr che ti restituisce la posizione di inizio stringa all'interno di un'altra stringa oppure + semplicemente esiste la funzione replace che ti permette di sostituire una sottoringa con un'altra sottostringa all'interno di una stringa .

    Cerco di spiegarmi meglio con un paio di esempi :

    FUNZIONE INSTR :
    Ricerco all'interno della stringa bravo la lettera A partendo dal 1° carattere .
    codice:
    Dim X as long
    X = InStr(1, "BRAVO", "A")
    X = posizione in cui viene trovata "A" (assumerà valore 3)
    1 = posizione di partenza nella stringa BRAVO


    FUNZIONE REPLACE :
    Sostiutisco in Ciao la "a" con la "u" ;
    codice:
    Dim NewParola as string
    NewParola = Replace("CIAO", "A", "U")
    Newparola = "CIUO"

    Spero di esserti stato utile
    Ciao
    Cordiali saluti
    Red Roma

  3. #3
    grazie mille

    questo è ciò ke volevo...
    Però ho 2 cose da chiedere...

    1]

    codice:
    Dim X as long
    X = InStr(1, "BRAVO", "A")
    se io non avessi la lettera ke voglio cioè... mettiamo ke io la stringa non la conosca, e cerco nella stringa la lettera "A" ke però non c'è... allora in questo caso X ke valore mi assume??

    2]

    codice:
    Dim NewParola as string
    NewParola = Replace("CIAO", "A", "U")
    Se qui io avessi avuto al posto di CIAO la parola CIAOA e cambio la lettera A con la U, lui [dato ke ora ho 2 lettera A nella stringa] me le cambia entrambe con una U oppure mi cambia solo la prima che trova??

    Grazie mille..

  4. #4
    Piccolo problema tecnico!
    In VB5, quello ke uso io, la funzione REPLACE non esiste! Dice ke non la trova e nemmeno sulla guida c'è

    Come posso fare quindi?!

  5. #5
    Ciao
    se io non avessi la lettera ke voglio cioè... mettiamo ke io la stringa non la conosca, e cerco nella stringa la lettera "A" ke però non c'è... allora in questo caso X ke valore mi assume??
    codice:
    Dim X as long
    X = InStr(1, "BRAVO", "E")
    X assume valore 0 (zero)

    [QUOTE]
    Se qui io avessi avuto al posto di CIAO la parola CIAOA e cambio la lettera A con la U, lui [dato ke ora ho 2 lettera A nella stringa] me le cambia entrambe con una U oppure mi cambia solo la prima che trova??
    [/QUOTE ]

    codice:
    Dim NewParola As String
    NewParola = Replace("CIAOA", "A", "U")
    Newparola = "CIUOU"


    Se hai ancora bisogno fin dove posso ti aiuto ciao
    Cordiali saluti
    Red Roma

  6. #6
    Per il piccolo problema tecnico ... avevo letto VB5/6 nel 6 la funzione replace esiste ... se nel 5 non esiste bisogna creare una funzione che faccia quello che fa la replace
    Cordiali saluti
    Red Roma

  7. #7
    Ciao Ti posto il codice di una routine prova a vedere se ti funziona

    codice:
    Public Function Sostituisci_Carattere(Parola As String, Old_Car As String, New_Car As String) As String
    ' Parola e la stringa dove vuoi effettuare la sostituzione
    ' Old_Car è il carattere che vuoi sostituire
    ' New_Car è il nuovo carattere 
    Dim I As Long
    Dim Car As String
    Sostituisci_Carattere = ""
    For I = 1 To Len(Parola)
        Car = Mid(Parola, I, 1)
        If Car = Old_Car Then
            Sostituisci_Carattere = Sostituisci_Carattere & New_Car
        Else
            Sostituisci_Carattere = Sostituisci_Carattere & Car
        End If
    Next
    
    End Function
    Ciao
    Fammi sapere
    Cordiali saluti
    Red Roma

  8. #8
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    eccone un altro:

    codice:
    Public Function Replace(oldstring, newletter, oldletter) As String
        Dim i As Integer
        i = 1
        Do While InStr(i, oldstring, oldletter, vbTextCompare) <> 0
            Replace = Replace & Mid(oldstring, i, _
                InStr(i, oldstring, oldletter, vbTextCompare) - i) & newletter
            i = InStr(i, oldstring, oldletter, vbTextCompare) + Len(oldletter)
        Loop
        Replace = Replace & Right(oldstring, Len(oldstring) - i + 1)
    End Function

  9. #9
    ragazzi non so come ringraziarvi
    scusa se ho messo VB5/6 ma pensavo ke fosse uguale e ke ci fosse la funzione in vb5.. sono un po indietro io!!!
    Per imparare vb vado meglio con la 5... poi passerò alla 6!

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.