Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Heyjoe
    Registrato dal
    Dec 2001
    Messaggi
    95

    [VB6] sostituire caratteri stringa

    Sono pivello in VB6.
    Prendo dei dati da un DB e li inserisco in un textbox Text1 e vorrei che in un Text2 i caratteri delle parole fossero cambiati ; per es con A=F, B=G, C=H, cioè una specie di criptografia sempliciotta.
    Vorrei sapere se c'è qualche istruzione - funzione che mi può agevolare in questo (non vorrei perdermi in una lunghissima sequenza di Select case, sempre che il select case possa funzionare).

    Deng iù

  2. #2
    Prova con l'istruzione replace:

    Text2.text=Replace(Text2.text,"A","B")

    questo pezzo di codice non fa altro che sostituire in text2 tutte le "A" con "B" e assegnarle a Text2.text

  3. #3
    Utente di HTML.it L'avatar di Heyjoe
    Registrato dal
    Dec 2001
    Messaggi
    95
    Ri - Deng iù

  4. #4
    Utente di HTML.it L'avatar di Heyjoe
    Registrato dal
    Dec 2001
    Messaggi
    95
    che capocciata ...

    il codice funziona, ma solo x una lettera.
    Invece, vorrei proprio una specie di "traduttore" dicendo, per es che A=F, B=G, C=H, D=I
    Con la funzione:
    Text2.Text = Replace(Text1.Text, "G", "B")
    funziona solo se nella stringa di Text1 c'è "G",oppure se c'è:
    Text2.Text = Replace(Text1.Text, "FGHI", "ABCD")
    ma solo nell'ordine preciso, perchè se cambio Text1 in "IHGF"
    Text2 sarà sempre "IHGF"
    Invece, avrei bisogno di una funzione che mi funzioni a prescindere dell'ordine in cui immetto il testo in Text1, ma dove la lettera A sarà sempre uguale a F in qualsiasi posizione essa si trovi .
    Troppo confuso? ...

  5. #5
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Una soluzione consiste nel 'scriverti' una funzione che processa
    tutti i caratteri di una stringa con un ciclo For ... Next, i valori
    dei caratteri li inserisci in un array. Per la sostituzione punti
    all'elemento di questo array in posizione ASC(Catattere).
    Adesso non ho la possibilità di scriverti l'algoritmo ma gli indizi
    che ti ho suggerito dovrebbero bastare.

    Ciao,
    Ciao, Brainjar

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Oppure usare la Replace cosi' come stavi facendo, ma con due array in un ciclo For da cui prelevare le singole lettere ...

  7. #7
    Utente di HTML.it L'avatar di Heyjoe
    Registrato dal
    Dec 2001
    Messaggi
    95
    la guida in linea di VB6 mi da questo esempio x la funzione con l'uso di ASC():

    STORE 'ABCDEFGHIJ' TO gcANSI && 10 characters
    CLEAR
    FOR nCOUNT = 1 TO 10
    ? SUBSTR(gcANSI, nCount,1) && Display a character
    ?? ASC(SUBSTR(gcANSI, nCount)) && Display ANSI value
    ENDFOR

    ci capisco quasi una mazza, se non che dovrebbe rendermi il numero corrispondente al carattere nel codice ANSI, ma come "tradurlo" nella corrispondente lettera abbinata?


  8. #8
    Utente di HTML.it L'avatar di Heyjoe
    Registrato dal
    Dec 2001
    Messaggi
    95
    Riassunto x farmi capire meglio:

    ho un textbox1 dove io scrivo una parola qualunque
    con l'azione di un commandbutton vado a trascrivere questa parola in un textbox2 con caratteri modificati aumentanDo, per es, il valore del codice ASCII del carattere di 5
    Per es:TOPO mi diventa YTUT

    Perciò, dovrei prima estrarre ogni singolo carattere dalla stringa Text1, aumentare il suo valore ASCII di 5 e trascrivere il tutto in Text2

    E' fattibile, oppure mi metto l'anima in pace? :master:

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    for i = 1 to len(textbox1.text)
    textbox2.text = textbox2.text & Chr$(Asc(Mid$(textbox1.text, I, 1))+5)
    next i
    Ans.

  10. #10
    Ovviamente la funzione Replace fa solo quello che ti ho indicato.
    Ovviamente devi adattarla alle tue esigenze.

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.