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

    [VB.NET] Nickname Generator

    ciao, sto creando un programma ke sostituisce le lettere di una stringa (tipo prova) con altre lettere (tipo ρяǿעα) selezionate nelle rispettive ComboBox.
    questo è il sorgente:

    codice:
    Private Sub conv_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles conv.Click
            Dim word As Integer
            For word = 1 To Len(normal.Text)
                ascii.Text = Replace(normal.Text, "a", a.SelectedItem)
                ascii.Text = Replace(normal.Text, "b", b.SelectedItem)
                ascii.Text = Replace(normal.Text, "c", c.SelectedItem)
                ascii.Text = Replace(normal.Text, "d", d.SelectedItem)
                ascii.Text = Replace(normal.Text, "e", ee.SelectedItem)
                ascii.Text = Replace(normal.Text, "f", f.SelectedItem)
                ascii.Text = Replace(normal.Text, "g", g.SelectedItem)
                ascii.Text = Replace(normal.Text, "h", h.SelectedItem)
                ascii.Text = Replace(normal.Text, "i", i.SelectedItem)
                ascii.Text = Replace(normal.Text, "j", j.SelectedItem)
                ascii.Text = Replace(normal.Text, "k", k.SelectedItem)
                ascii.Text = Replace(normal.Text, "l", l.SelectedItem)
                ascii.Text = Replace(normal.Text, "m", m.SelectedItem)
                ascii.Text = Replace(normal.Text, "n", n.SelectedItem)
                ascii.Text = Replace(normal.Text, "o", o.SelectedItem)
                ascii.Text = Replace(normal.Text, "p", p.SelectedItem)
                ascii.Text = Replace(normal.Text, "q", q.SelectedItem)
                ascii.Text = Replace(normal.Text, "r", r.SelectedItem)
                ascii.Text = Replace(normal.Text, "s", s.SelectedItem)
                ascii.Text = Replace(normal.Text, "t", t.SelectedItem)
                ascii.Text = Replace(normal.Text, "u", u.SelectedItem)
                ascii.Text = Replace(normal.Text, "v", v.SelectedItem)
                ascii.Text = Replace(normal.Text, "w", w.SelectedItem)
                ascii.Text = Replace(normal.Text, "x", x.SelectedItem)
                ascii.Text = Replace(normal.Text, "y", y.SelectedItem)
                ascii.Text = Replace(normal.Text, "z", z.SelectedItem)
                ascii.Text = Replace(normal.Text, "A", am.SelectedItem)
                ascii.Text = Replace(normal.Text, "B", bm.SelectedItem)
                ascii.Text = Replace(normal.Text, "C", cm.SelectedItem)
                ascii.Text = Replace(normal.Text, "D", dm.SelectedItem)
                ascii.Text = Replace(normal.Text, "E", em.SelectedItem)
                ascii.Text = Replace(normal.Text, "F", fm.SelectedItem)
                ascii.Text = Replace(normal.Text, "G", gm.SelectedItem)
                ascii.Text = Replace(normal.Text, "H", hm.SelectedItem)
                ascii.Text = Replace(normal.Text, "I", im.SelectedItem)
                ascii.Text = Replace(normal.Text, "J", jm.SelectedItem)
                ascii.Text = Replace(normal.Text, "K", km.SelectedItem)
                ascii.Text = Replace(normal.Text, "L", lm.SelectedItem)
                ascii.Text = Replace(normal.Text, "M", mm.SelectedItem)
                ascii.Text = Replace(normal.Text, "N", nm.SelectedItem)
                ascii.Text = Replace(normal.Text, "O", om.SelectedItem)
                ascii.Text = Replace(normal.Text, "P", pm.SelectedItem)
                ascii.Text = Replace(normal.Text, "Q", qm.SelectedItem)
                ascii.Text = Replace(normal.Text, "R", rm.SelectedItem)
                ascii.Text = Replace(normal.Text, "S", sm.SelectedItem)
                ascii.Text = Replace(normal.Text, "T", tm.SelectedItem)
                ascii.Text = Replace(normal.Text, "U", um.SelectedItem)
                ascii.Text = Replace(normal.Text, "V", vm.SelectedItem)
                ascii.Text = Replace(normal.Text, "W", wm.SelectedItem)
                ascii.Text = Replace(normal.Text, "X", xm.SelectedItem)
                ascii.Text = Replace(normal.Text, "Y", ym.SelectedItem)
                ascii.Text = Replace(normal.Text, "Z", zm.SelectedItem)
            Next word
        End Sub
    il problema è ke se scrivo un unico Replace (tipo ascii.Text = Replace(normal.Text, "a", a.SelectedItem)) il programma funziona e mi sostituisce ttte le a, se invece scrivo ttti quei Replace a forza di rimpiazzare lettere, ascii.Text rimane tale e quale a normal.Text

    cm posso risolvere?
    inoltre.. immagino esista un qualke codice molto + breve d qllo ke ho scritto io, se potreste insegnarmelo ve ne sarei molto grato!

  2. #2

  3. #3
    Perchè metti tutto in un ciclo? E' inutile: Replace sostituisce tutte le occorrenze al primo colpo. Dovresti invece usare un ciclo per gestire tutte le sostituzioni e non scriverle a mano. Devi tenere conto anche delle lettere minuscole. Cosa sono a, b, c, d, mn, eccetera?

    P.S.: dato che scrivi in Vb.Net non dovresti usare Len e Replace, ma String.Length e String.Replace, entrambi membri d'istanza.

  4. #4
    grazie x le dritte

    ho tolto il ciclo for, ho sostituito il Replace con la relativa funzione d VB.NET e ho assegnato delle variabili x capirci mejo. ora il codice risulta così:
    codice:
            Dim normale As String
            Dim convertito As String
            normale = normal.Text
            convertito = ascii.Text
    
            convertito = normale.Replace("a", a.SelectedItem)
            convertito = normale.Replace("b", b.SelectedItem)
            convertito = normale.Replace("c", c.SelectedItem)
            convertito = normale.Replace("d", d.SelectedItem)
    
                      .....eccetera.....
    normale è la stringa di partenza
    convertito è la stringa modificata
    a.SelectedItem e gli altri .SelectedItem sn ttti valori delle ComboBox

    infatti voglio ke sia l'utente a scegliere con quale carattere speciale modificare la propria stringa e lo può fare scegliendo un elemento dalle ComboBox


    cmq il problema rimane: convertito risulta essere uguale a normale....cm poxo fare?

  5. #5
    nessuno sa dirmi niente?

  6. #6
    C'è un problema di concetto che non avevo notato. Ammettiamo che Normale = "ABCD", dove A diventerà a, B diventerà b, C c e D d (per semplificare le cose). Tu hai scritto:
    codice:
    'All'inizio Convertito è una stringa vuota
    Convertito = Normale.Replace("A", "a") -> "aBCD"   'Una lettera cambiata
    Convertito = Normale.Replace("B", "b") -> "AbCD"   'Ancora una sola
    '... e così via
    Se, quindi, l'ultima lettera non era presente nella stringa di partenza, le modifiche sono nulle: è più opportuno che modifichi direttamente e solamente la stringa Normale, che comunque non influenzerà il testo della TextBox:
    codice:
    Dim Normale As String = TextBox1.Text.Clone
    
    Normale = Normale.Replace("A", "a") -> "aBCD"   'Una lettera cambiata
    Normale = Normale.Replace("B", "b") -> "abCD"   'Due lettere
    '...
    Capito?

  7. #7
    ho capito cosa volevi dire, ma ancora nn funziona!
    ho anke sostituito ttto il mio codice al tuo..ma le lettere nn fanno 1 piega
    codice:
            Dim normale As String = normal.Text.Clone
    
            normale = normale.Replace("A", "a")
            normale = normale.Replace("B", "b")
    ho scritto nella TextBox AB e x ttta risposta ho ottenuto AB

    nn capisco dove sta l'errore

  8. #8
    Non hai impostato il testo della TextBox mi sa...

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.