Ir para conteúdo
Fórum Script Brasil
  • 0

Pegar cada letra na text


T.H.U.G. L.I.F.E.

Pergunta

Galera....tenho q fazer 1 form q contenha 1 botao e 1 caixa de texto com até 255 caracteres e eu gostaria de saber como eu faço para pegar cada 1 destes caracteres e trata-los.

Quero praticamente criptografa-los q nem no exemplo abaixo:

frase na text: "eu to fudido"

a={01 , 02 , 03 , 04}

b={11 , 12 , 13 , 14}

c={21 , 22 , 23 , 24}

d={31 , 32 , 33 , 34}

e={41 , 42 , 43 , 44}

f={51 , 52 , 53 , 54}

g={61 , 62 , 63 , 64}

h={71 , 72 , 73 , 74}

i={81 , 82 , 83 , 84}

j={91 , 92 , 93 , 94}

k={05 , 06 , 07 , 08}

l={15 , 16 , 17 , 18}

m={25 , 26 , 27 , 28}

n={35 , 36 , 37 , 38}

o={45 , 46 , 47 , 48}

p={55 , 56 , 57 , 58}

q={65 , 66 , 67 , 68}

r={75 , 76 , 77 , 78}

s={85 , 86 , 87 , 88}

t={95 , 96 , 97 , 98}

u={10 , 20 , 30 , 40}

v={50 , 60 , 70 , 80}

w={90 , 00 , A0 , B0}

x={C0 , D0 , E0 , F0}

y={G0 , H0 , I0 , J0}

z={K0 , L0 , M0 , N0}

o resultado fica: "95 46 53 10 34 81 31 45"

eu gostaria que ele pegasse os valores aleatoriamente....

podem dar ideias quem tiver 1 jeito melhor....

eu sei mais ou menos como faz isso, mas tm muito tmpo q n mexo com VB e aí eu to ferrado....

quem poder me ajudar.....meu muito obrigado :blush:

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

pra tratar os caracteres é só fazer um For e ir dando Mid(). tipo assim:

For i = 1 To Len(Text1.Text)
    MsgBox "A " & i & "ª letra é " & Mid(Text1.Text, i, 1)
Next[/code]

é só isso a sua duvida?? ou é na hora de criptografar??

mas como assim você quer pegar randomicamente?? e não entendi porque o resultado fica: "95 46 53 10 34 81 31 45"

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

ta agora entendi, mas o resultado q você passou ta errado, você passou a criptografia de "to fudido", esqueceu do "eu".

deixa eu ver se entendi, o caractere "a" pode ser transformado em 01, 02, 03 ou 04 e você quer transformar em algum deles aleatoriamente??

pra pegar o numero random, use a funcao Rnd(), tem exemplos por ai, mesmo aqui no forum.

qualquer duvida poste.

Link para o comentário
Compartilhar em outros sites

  • 0
o resultado ficou esse por causa do q eu digitei na text q eu excrevi logo acima e eu tocom dificuldade p ele escolher randomicamente tb....

valeu

agora q eu vi q ficou faltando 2 letras....mas ve se consegue entender....

ta agora entendi, mas o resultado q você passou ta errado, você passou a criptografia de "to fudido", esqueceu do "eu".

deixa eu ver se entendi, o caractere "a" pode ser transformado em 01, 02, 03 ou 04 e você quer transformar em algum deles aleatoriamente??

pra pegar o numero random, use a funcao Rnd(), tem exemplos por ai, mesmo aqui no forum.

qualquer duvida poste.

valeu entaum kuroi...vo correr atraz disso logo q chegar em casa e qualquer coisa eu posto aqui....mas valeu por enquanto....

Link para o comentário
Compartilhar em outros sites

  • 0
ta agora entendi, mas o resultado q você passou ta errado, você passou a criptografia de "to fudido", esqueceu do "eu".

deixa eu ver se entendi, o caractere "a" pode ser transformado em 01, 02, 03 ou 04 e você quer transformar em algum deles aleatoriamente??

pra pegar o numero random, use a funcao Rnd(), tem exemplos por ai, mesmo aqui no forum.

qualquer duvida poste.

Kuroi....procurei coisas aqui e n axei.... tm como você me explicar 1 pouco como funciona essa funçao Rnd()? porque eu nunk ouvi falar dela....muito obrigado se puder me ajudar

Link para o comentário
Compartilhar em outros sites

  • 0

eu dei uma olhada pela net e vi umas dicas de como usar a função rnd(). para usa-la eu tenho q declarar assim como ta abaixo?

Dim a(4)

Dim b(4)

Dim c(4)

Dim d(4)

Dim e(4)

Dim f(4)

Dim g(4)

Dim h(4)

Dim i(4)

Dim j(4)

Dim k(4)

Dim l(4)

Dim m(4)

Dim n(4)

Dim o(4)

Dim p(4)

Dim q(4)

Dim r(4)

Dim s(4)

Dim t(4)

Dim u(4)

Dim v(4)

Dim w(4)

Dim x(4)

Dim y(4)

Dim z(4)

a(0)="01 "

a(1)="02 "

a(2)="03 "

a(3)="04 "

b(0)="11 "

b(1)="12 "

b(2)="13 "

b(3)="14 "

e assim para todas as letras...

aí eu vou criar outra text chamada por exemplo="txtresultado" q vai trazer o resultado da mensagem q foi codificada

txtresultado.text=a(cint(rnd()*3)) - se a 1ª letra for A

mas n sei fazer ele usar a variavel certa dependendo da letra

e tb n sei como ele faz p tratar cada letra....

to pelo menos indo no caminho já????

valeu

Editado por T.H.U.G. L.I.F.E.
Link para o comentário
Compartilhar em outros sites

  • 0

Fica bem mais simples usando uma coleção, onde se pode atribuir uma chave ao elemento (no caso, o caracter):

Dim letras As New Collection
Dim frase As String

letras.Add Array("01", "02", "03", "04"), "a"
letras.Add Array("11", "12", "13", "14"), "b"
letras.Add Array("21", "22", "23", "24"), "c"
letras.Add Array("31", "32", "33", "34"), "d"
letras.Add Array("41", "42", "43", "44"), "e"
letras.Add Array("51", "52", "53", "54"), "f"
letras.Add Array("61", "62", "63", "64"), "g"
letras.Add Array("71", "72", "73", "74"), "h"
letras.Add Array("81", "82", "83", "84"), "i"
letras.Add Array("91", "92", "93", "94"), "j"
letras.Add Array("05", "06", "07", "08"), "k"
letras.Add Array("15", "16", "17", "18"), "l"
letras.Add Array("25", "26", "27", "28"), "m"
letras.Add Array("35", "36", "37", "38"), "n"
letras.Add Array("45", "46", "47", "48"), "o"
letras.Add Array("55", "56", "57", "58"), "p"
letras.Add Array("65", "66", "67", "68"), "q"
letras.Add Array("75", "76", "77", "78"), "r"
letras.Add Array("85", "86", "87", "88"), "s"
letras.Add Array("95", "96", "97", "98"), "t"
letras.Add Array("10", "20", "30", "40"), "u"
letras.Add Array("50", "60", "70", "80"), "v"
letras.Add Array("90", "00", "A0", "B0"), "w"
letras.Add Array("C0", "D0", "E0", "F0"), "x"
letras.Add Array("G0", "H0", "I0", "J0"), "y"
letras.Add Array("K0", "L0", "M0", "N0"), "z"

Randomize 'Renova a semente geradora de números aleatórios

frase = "eu to fudido"

For i = 1 To Len(frase)
    c = Mid(frase, i, 1) 'Obtém um caracter
    
    If c <> " " Then 'Ignorar espaços
        n = Int(Rnd() * 4) 'Gera um número aleatório entre 0 e 3
    
        nc = letras(c)(n) 'Pega da coleção acima, o n-ésimo elemento do array cuja chave é c
    
        Debug.Print c & " = " & nc
    End If
Next i

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Fica bem mais simples usando uma coleção, onde se pode atribuir uma chave ao elemento (no caso, o caracter):

Dim letras As New Collection
Dim frase As String

letras.Add Array("01", "02", "03", "04"), "a"
letras.Add Array("11", "12", "13", "14"), "b"
letras.Add Array("21", "22", "23", "24"), "c"
letras.Add Array("31", "32", "33", "34"), "d"
letras.Add Array("41", "42", "43", "44"), "e"
letras.Add Array("51", "52", "53", "54"), "f"
letras.Add Array("61", "62", "63", "64"), "g"
letras.Add Array("71", "72", "73", "74"), "h"
letras.Add Array("81", "82", "83", "84"), "i"
letras.Add Array("91", "92", "93", "94"), "j"
letras.Add Array("05", "06", "07", "08"), "k"
letras.Add Array("15", "16", "17", "18"), "l"
letras.Add Array("25", "26", "27", "28"), "m"
letras.Add Array("35", "36", "37", "38"), "n"
letras.Add Array("45", "46", "47", "48"), "o"
letras.Add Array("55", "56", "57", "58"), "p"
letras.Add Array("65", "66", "67", "68"), "q"
letras.Add Array("75", "76", "77", "78"), "r"
letras.Add Array("85", "86", "87", "88"), "s"
letras.Add Array("95", "96", "97", "98"), "t"
letras.Add Array("10", "20", "30", "40"), "u"
letras.Add Array("50", "60", "70", "80"), "v"
letras.Add Array("90", "00", "A0", "B0"), "w"
letras.Add Array("C0", "D0", "E0", "F0"), "x"
letras.Add Array("G0", "H0", "I0", "J0"), "y"
letras.Add Array("K0", "L0", "M0", "N0"), "z"

Randomize 'Renova a semente geradora de números aleatórios

frase = "eu to fudido"

For i = 1 To Len(frase)
    c = Mid(frase, i, 1) 'Obtém um caracter
    
    If c <> " " Then 'Ignorar espaços
        n = Int(Rnd() * 4) 'Gera um número aleatório entre 0 e 3
    
        nc = letras(c)(n) 'Pega da coleção acima, o n-ésimo elemento do array cuja chave é c
    
        Debug.Print c & " = " & nc
    End If
Next i

Certo? ;)

Graymalkin

Bom, eu já consegui fazer ele criptografar, mas preciso ainda de 1 ajudinha....ainda não consegui fazer ele converter os números e tb ficou faltando as palavras com acentos.....n sei como declarar as variáveis destes q faltam, abaixo segue o código p criptografar, mas não tenho a mínima idéia d como fazer ele descriptografar o código.

valeu galera e quem poder me ajudar eu agradeço,

segue o codigo:

Private Sub Command1_Click()

Dim Chave As Variant

Dim organiza As String

Dim SemEspaco As String

Dim a, b, c, d, e, f As Variant

Dim g, h, i, j, k, l As Variant

Dim m, n, o, p, q, r As Variant

Dim s, t, u, v, x, w As Variant

Dim y, z As Variant

a = Array("01", "02", "03", "04")

b = Array("11", "12", "13", "14")

c = Array("21", "22", "23", "24")

d = Array("31", "32", "33", "34")

e = Array("41", "42", "43", "44")

f = Array("51", "52", "53", "54")

g = Array("61", "62", "63", "64")

h = Array("71", "72", "73", "74")

i = Array("81", "82", "83", "84")

j = Array("91", "92", "93", "94")

k = Array("05", "06", "07", "08")

l = Array("15", "16", "17", "18")

m = Array("25", "26", "27", "28")

n = Array("35", "36", "37", "38")

o = Array("45", "46", "47", "48")

p = Array("55", "56", "57", "58")

q = Array("65", "66", "67", "68")

r = Array("75", "76", "77", "78")

s = Array("85", "86", "87", "88")

t = Array("95", "96", "97", "98")

u = Array("10", "20", "30", "40")

v = Array("50", "60", "70", "80")

w = Array("90", "00", "A0", "B0")

x = Array("C0", "D0", "E0", "F0")

y = Array("G0", "H0", "I0", "J0")

z = Array("K0", "L0", "M0", "N0")

SemEspaco = LCase(Replace(Text1.Text, " ", " "))

For busca = 0 To Len(SemEspaco)

Chave = Int(4 * Rnd)

Select Case Mid(SemEspaco, busca + 1, 1)

Case "a"

organiza = organiza + " " + a(Chave)

Case "b"

organiza = organiza + " " + b(Chave)

Case "c"

organiza = organiza + " " + c(Chave)

Case "d"

organiza = organiza + " " + d(Chave)

Case "e"

organiza = organiza + " " + e(Chave)

Case "f"

organiza = organiza + " " + f(Chave)

Case "g"

organiza = organiza + " " + g(Chave)

Case "h"

organiza = organiza + " " + h(Chave)

Case "i"

organiza = organiza + " " + i(Chave)

Case "j"

organiza = organiza + " " + j(Chave)

Case "k"

organiza = organiza + " " + k(Chave)

Case "l"

organiza = organiza + " " + l(Chave)

Case "m"

organiza = organiza + " " + m(Chave)

Case "n"

organiza = organiza + " " + n(Chave)

Case "o"

organiza = organiza + " " + o(Chave)

Case "p"

organiza = organiza + " " + p(Chave)

Case "q"

organiza = organiza + " " + q(Chave)

Case "r"

organiza = organiza + " " + r(Chave)

Case "s"

organiza = organiza + " " + s(Chave)

Case "t"

organiza = organiza + " " + t(Chave)

Case "u"

organiza = organiza + " " + u(Chave)

Case "v"

organiza = organiza + " " + v(Chave)

Case "w"

organiza = organiza + " " + w(Chave)

Case "x"

organiza = organiza + " " + x(Chave)

Case "y"

organiza = organiza + " " + y(Chave)

Case "z"

organiza = organiza + " " + z(Chave)

End Select

Next busca

Label1.Caption = organiza

Open "c:\mensagem_criptografada.txt" For Output As #1

Print #1, organiza

Close #1

MsgBox ("Arquivo 'mensagem_criptografada.txt' gravado com sucesso em 'C:\'")

Link para o comentário
Compartilhar em outros sites

  • 0

Para caracteres acentuados basta fazer do mesmo jeito que você faz para caracteres normais. Aliás, como você está usando variáveis com as letras do alfabeto, saiba que também pode usá-las acentuadas pois isso não é um problema no VB:

ã = Array("00", "00", "00", "00")
...
Case "ã"
    organiza = organiza + " " + ã(Chave)

Certo? ;) Agora, ainda acho que o método que passei (usando uma coleção) é bem mais simples de se usar (e de inserir novos caracteres, como é o caso).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Para caracteres acentuados basta fazer do mesmo jeito que você faz para caracteres normais. Aliás, como você está usando variáveis com as letras do alfabeto, saiba que também pode usá-las acentuadas pois isso não é um problema no VB:

ã = Array("00", "00", "00", "00")
...
Case "ã"
    organiza = organiza + " " + ã(Chave)

Certo? ;) Agora, ainda acho que o método que passei (usando uma coleção) é bem mais simples de se usar (e de inserir novos caracteres, como é o caso).

Abraços,

Graymalkin

é q n consegui fazer do jeito q você colocou.

n consigo criar 1 variavel p numeros, a n ser q eu esteja fazendo errado "Dim 1 as variant" da 1 erro quando eu dou enter

aparece a mensagem: "Compile error: Expected: identifier"

vou criar já as com acento. e como faço p criar 1 p a barra d espaço

você poderia me falar como eu faço p fazer o programinha fazer o contrario(descriptografar) a mesmo mensagem?

quanta duvida a minha....

valeu,

T.H.U.G. L.I.F.E. (The Hate U Give Little Infantis Fuck Everybody)

Link para o comentário
Compartilhar em outros sites

  • 0

Não se pode nomear variáveis com caracteres numéricos, nem colocar tais caracteres no início do nome (somente no meio ou no fim). Obviamente, idem para o espaço em branco. Nestes casos você vai ter que dar nomes como um, dois, espaço, etc.

Agora, o que você não conseguiu naquele outro jeito que passei? Acho que seria bem mais simples daquela forma. Da sua maneira você tem que alterar em dois locais ao acrescentar cada caractere.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu tenho q criar 1 projeto p criptografar e descriptografar 1 texto d até 255 caracteres, eu tenho 1 ideia mas ta tendo erro...

segue abaixo a codificação q usei:

CRIPTOGRAFAR:

Function Cripta(Texto As String) As String

Dim a, b, c, d, e, f As Variant

Dim g, h, i, j, k, l As Variant

Dim m, n, o, p, q, r As Variant

Dim s, t, u, v, x, w As Variant

Dim y, z, Espaco, ç As Variant

Dim ã, â, á, à, ä As Variant

Dim ê, é, è, ë, î As Variant

Dim í, ì, ï, õ, ô As Variant

Dim ó, ò, ö, û, ú As Variant

Dim ù, ü, não As Variant

Dim um, dois, tres, quatro, cinco As Variant

Dim seis, sete, oito, nove, zero As Variant

Dim aspsim, exclam, arrob, sust, cifrao As Variant

Dim porcento, comerc, asterisco, abpa, fepa As Variant

Dim under, hif, cruz, igual, ss, abchave As Variant

Dim abco, apqno, fechave, feco, opqno As Variant

Dim menor, maior, virgula, pontofim, ponto As Variant

Dim pontovi, interrog, barrainv, japo, barra As Variant

Dim aspadu, ump, doisp, tresp, funder, ccortado As Variant

Dim zoinfech, tio, chapeu, pdir, pesq, pp As Variant

Dim Chave1 As Variant

Dim chave As Variant

a = Array("001")

b = Array("002")

c = Array("003")

d = Array("004")

e = Array("005")

f = Array("006")

g = Array("007")

h = Array("008")

i = Array("009")

j = Array("010")

k = Array("011")

l = Array("012")

m = Array("013")

n = Array("014")

o = Array("015")

p = Array("016")

q = Array("017")

r = Array("018")

s = Array("019")

t = Array("020")

u = Array("021")

v = Array("022")

w = Array("023")

x = Array("024")

y = Array("025")

z = Array("026")

Espaco = Array("027")

ç = Array("028")

ã = Array("029")

â = Array("030")

á = Array("031")

à = Array("032")

ä = Array("033")

ê = Array("034")

é = Array("035")

è = Array("036")

ë = Array("037")

î = Array("038")

í = Array("039")

ì = Array("040")

ï = Array("041")

õ = Array("042")

ô = Array("043")

ó = Array("044")

ò = Array("045")

ö = Array("046")

û = Array("047")

ú = Array("048")

ù = Array("049")

ü = Array("050")

não = Array("051")

um = Array("052")

dois = Array("053")

tres = Array("054")

quatro = Array("055")

cinco = Array("056")

seis = Array("057")

sete = Array("058")

oito = Array("059")

nove = Array("060")

zero = Array("061")

aspsim = Array("062")

exclam = Array("063")

arrob = Array("064")

sust = Array("065")

cifrao = Array("066")

porcento = Array("067")

comerc = Array("068")

asterisco = Array("069")

abpa = Array("070")

fepa = Array("071")

under = Array("072")

hif = Array("073")

cruz = Array("074")

igual = Array("075")

ss = Array("076")

abchave = Array("077")

abco = Array("078")

apqno = Array("079")

fechave = Array("080")

feco = Array("081")

opqno = Array("082")

menor = Array("083")

maior = Array("084")

virgula = Array("085")

pontofim = Array("086")

ponto = Array("087")

pontovi = Array("088")

interrog = Array("089")

barrainv = Array("090")

japo = Array("091")

barra = Array("092")

aspadu = Array("093")

ump = Array("094")

doisp = Array("095")

tresp = Array("096")

funder = Array("097")

ccortado = Array("098")

zoinfech = Array("099")

tio = Array("100")

pdir = Array("101")

pesq = Array("102")

pp = Array("103")

chapeu = Array("104")

Chave1 = Array("6")

For busca = 0 To Len(Texto)

chave = Int(1 * Rnd)

Select Case LCase(Mid(Texto, busca + 1, 1))

Case "a"

Cripta = Cripta + a(chave)

Case "b"

Cripta = Cripta + b(chave)

Case "c"

Cripta = Cripta + c(chave)

Case "d"

Cripta = Cripta + d(chave)

Case "e"

Cripta = Cripta + e(chave)

Case "f"

Cripta = Cripta + f(chave)

Case "g"

Cripta = Cripta + g(chave)

Case "h"

Cripta = Cripta + h(chave)

Case "i"

Cripta = Cripta + i(chave)

Case "j"

Cripta = Cripta + j(chave)

Case "k"

Cripta = Cripta + k(chave)

Case "l"

Cripta = Cripta + l(chave)

Case "m"

Cripta = Cripta + m(chave)

Case "n"

Cripta = Cripta + n(chave)

Case "o"

Cripta = Cripta + o(chave)

Case "p"

Cripta = Cripta + p(chave)

Case "q"

Cripta = Cripta + q(chave)

Case "r"

Cripta = Cripta + r(chave)

Case "s"

Cripta = Cripta + s(chave)

Case "t"

Cripta = Cripta + t(chave)

Case "u"

Cripta = Cripta + u(chave)

Case "v"

Cripta = Cripta + v(chave)

Case "w"

Cripta = Cripta + w(chave)

Case "x"

Cripta = Cripta + x(chave)

Case "y"

Cripta = Cripta + y(chave)

Case "z"

Cripta = Cripta + z(chave)

Case " "

Cripta = Cripta + Espaco(chave)

Case "1"

Cripta = Cripta + um(chave)

Case "2"

Cripta = Cripta + dois(chave)

Case "3"

Cripta = Cripta + tres(chave)

Case "4"

Cripta = Cripta + quatro(chave)

Case "5"

Cripta = Cripta + cinco(chave)

Case "6"

Cripta = Cripta + seis(chave)

Case "7"

Cripta = Cripta + sete(chave)

Case "8"

Cripta = Cripta + oito(chave)

Case "9"

Cripta = Cripta + nove(chave)

Case "0"

Cripta = Cripta + zero(chave)

Case "'"

Cripta = Cripta + aspsim(chave)

Case "!"

Cripta = Cripta + exclam(chave)

Case "@"

Cripta = Cripta + arrob(chave)

Case "#"

Cripta = Cripta + sust(chave)

Case "$"

Cripta = Cripta + cifrao(chave)

Case "%"

Cripta = Cripta + porcento(chave)

Case "&"

Cripta = Cripta + comerc(chave)

Case "*"

Cripta = Cripta + asterisco(chave)

Case "("

Cripta = Cripta + abpa(chave)

Case ")"

Cripta = Cripta + fepa(chave)

Case "_"

Cripta = Cripta + under(chave)

Case "-"

Cripta = Cripta + hif(chave)

Case "+"

Cripta = Cripta + cruz(chave)

Case "="

Cripta = Cripta + igual(chave)

Case "§"

Cripta = Cripta + ss(chave)

Case "{"

Cripta = Cripta + abchave(chave)

Case "["

Cripta = Cripta + abco(chave)

Case "ª"

Cripta = Cripta + apqno(chave)

Case "}"

Cripta = Cripta + fechave(chave)

Case "]"

Cripta = Cripta + feco(chave)

Case "º"

Cripta = Cripta + opqno(chave)

Case "<"

Cripta = Cripta + menor(chave)

Case ">"

Cripta = Cripta + maior(chave)

Case ","

Cripta = Cripta + virgula(chave)

Case "."

Cripta = Cripta + pontofim(chave)

Case ":"

Cripta = Cripta + ponto(chave)

Case ";"

Cripta = Cripta + pontovi(chave)

Case "?"

Cripta = Cripta + interrog(chave)

Case "/"

Cripta = Cripta + barrainv(chave)

Case "|"

Cripta = Cripta + japo(chave)

Case "\"

Cripta = Cripta + barra(chave)

Case """"

Cripta = Cripta + aspadu(chave)

Case "¹"

Cripta = Cripta + ump(chave)

Case "²"

Cripta = Cripta + doisp(chave)

Case "³"

Cripta = Cripta + tresp(chave)

Case "£"

Cripta = Cripta + funder(chave)

Case "¢"

Cripta = Cripta + ccortado(chave)

Case "¬"

Cripta = Cripta + zoinfech(chave)

Case "ã"

Cripta = Cripta + ã(chave)

Case "â"

Cripta = Cripta + â(chave)

Case "á"

Cripta = Cripta + á(chave)

Case "à"

Cripta = Cripta + à(chave)

Case "ä"

Cripta = Cripta + ä(chave)

Case "ê"

Cripta = Cripta + ê(chave)

Case "é"

Cripta = Cripta + é(chave)

Case "è"

Cripta = Cripta + è(chave)

Case "ë"

Cripta = Cripta + ë(chave)

Case "î"

Cripta = Cripta + î(chave)

Case "í"

Cripta = Cripta + í(chave)

Case "ì"

Cripta = Cripta + ì(chave)

Case "ï"

Cripta = Cripta + ï(chave)

Case "õ"

Cripta = Cripta + õ(chave)

Case "ô"

Cripta = Cripta + ô(chave)

Case "ó"

Cripta = Cripta + ó(chave)

Case "ò"

Cripta = Cripta + ò(chave)

Case "ö"

Cripta = Cripta + ö(chave)

Case "û"

Cripta = Cripta + û(chave)

Case "ú"

Cripta = Cripta + ú(chave)

Case "ù"

Cripta = Cripta + ù(chave)

Case "ü"

Cripta = Cripta + ü(chave)

Case "não"

Cripta = Cripta + não(chave)

Case "ç"

Cripta = Cripta + ç(chave)

Case "~"

Cripta = Cripta + tio(chave)

Case "^"

Cripta = Cripta + chapeu(chave)

Case "´"

Cripta = Cripta + pdir(chave)

Case "`"

Cripta = Cripta + pesq(chave)

Case "¨"

Cripta = Cripta + pp(chave)

End Select

Next busca

End Function

Function Descripta(Texto As String) As String

Dim chave As Variant

Dim a, b, c, d, e, f As Variant

Dim g, h, i, j, k, l As Variant

Dim m, n, o, p, q, r As Variant

Dim s, t, u, v, x, w As Variant

Dim y, z, Espaco, ç As Variant

Dim ã, â, á, à, ä As Variant

Dim ê, é, è, ë, î As Variant

Dim í, ì, ï, õ, ô As Variant

Dim ó, ò, ö, û, ú As Variant

Dim ù, ü, não As Variant

Dim um, dois, tres, quatro, cinco As Variant

Dim seis, sete, oito, nove, zero As Variant

Dim aspsim, exclam, arrob, sust, cifrao As Variant

Dim porcento, comerc, asterisco, abpa, fepa As Variant

Dim under, hif, cruz, igual, ss, abchave As Variant

Dim abco, apqno, fechave, feco, opqno As Variant

Dim menor, maior, virgula, pontofim, ponto As Variant

Dim pontovi, interrog, barrainv, japo, barra As Variant

Dim aspadu, ump, doisp, tresp, funder, ccortado As Variant

Dim zoinfech, tio, chapeu, pdir, pesq, pp As Variant

a = Array("001")

b = Array("002")

c = Array("003")

d = Array("004")

e = Array("005")

f = Array("006")

g = Array("007")

h = Array("008")

i = Array("009")

j = Array("010")

k = Array("011")

l = Array("012")

m = Array("013")

n = Array("014")

o = Array("015")

p = Array("016")

q = Array("017")

r = Array("018")

s = Array("019")

t = Array("020")

u = Array("021")

v = Array("022")

w = Array("023")

x = Array("024")

y = Array("025")

z = Array("026")

Espaco = Array("027")

ç = Array("028")

ã = Array("029")

â = Array("030")

á = Array("031")

à = Array("032")

ä = Array("033")

ê = Array("034")

é = Array("035")

è = Array("036")

ë = Array("037")

î = Array("038")

í = Array("039")

ì = Array("040")

ï = Array("041")

õ = Array("042")

ô = Array("043")

ó = Array("044")

ò = Array("045")

ö = Array("046")

û = Array("047")

ú = Array("048")

ù = Array("049")

ü = Array("050")

não = Array("051")

um = Array("052")

dois = Array("053")

tres = Array("054")

quatro = Array("055")

cinco = Array("056")

seis = Array("057")

sete = Array("058")

oito = Array("059")

nove = Array("060")

zero = Array("061")

aspsim = Array("062")

exclam = Array("063")

arrob = Array("064")

sust = Array("065")

cifrao = Array("066")

porcento = Array("067")

comerc = Array("068")

asterisco = Array("069")

abpa = Array("070")

fepa = Array("071")

under = Array("072")

hif = Array("073")

cruz = Array("074")

igual = Array("075")

ss = Array("076")

abchave = Array("077")

abco = Array("078")

apqno = Array("079")

fechave = Array("080")

feco = Array("081")

opqno = Array("082")

menor = Array("083")

maior = Array("084")

virgula = Array("085")

pontofim = Array("086")

ponto = Array("087")

pontovi = Array("088")

interrog = Array("089")

barrainv = Array("090")

japo = Array("091")

barra = Array("092")

aspadu = Array("093")

ump = Array("094")

doisp = Array("095")

tresp = Array("096")

funder = Array("097")

ccortado = Array("098")

zoinfech = Array("099")

tio = Array("100")

pdir = Array("101")

pesq = Array("102")

pp = Array("103")

chapeu = Array("104")

For busca = 0 To Len(Texto) Step 3

For letra = 0 To 4

chave = UCase(Mid(Texto, busca + 1, 3))

If chave = a(letra) Then <---AQUI ESTA DANDO ERRO

Descripta = Descripta + "A"

ElseIf chave = b(letra) Then

Descripta = Descripta + "B"

ElseIf chave = c(letra) Then

Descripta = Descripta + "C"

ElseIf chave = d(letra) Then

Descripta = Descripta + "D"

ElseIf chave = e(letra) Then

Descripta = Descripta + "E"

ElseIf chave = f(letra) Then

Descripta = Descripta + "F"

ElseIf chave = g(letra) Then

Descripta = Descripta + "G"

ElseIf chave = h(letra) Then

Descripta = Descripta + "H"

ElseIf chave = i(letra) Then

Descripta = Descripta + "I"

ElseIf chave = j(letra) Then

Descripta = Descripta + "J"

ElseIf chave = k(letra) Then

Descripta = Descripta + "K"

ElseIf chave = l(letra) Then

Descripta = Descripta + "L"

ElseIf chave = m(letra) Then

Descripta = Descripta + "M"

ElseIf chave = n(letra) Then

Descripta = Descripta + "N"

ElseIf chave = o(letra) Then

Descripta = Descripta + "O"

ElseIf chave = p(letra) Then

Descripta = Descripta + "P"

ElseIf chave = q(letra) Then

Descripta = Descripta + "Q"

ElseIf chave = r(letra) Then

Descripta = Descripta + "R"

ElseIf chave = s(letra) Then

Descripta = Descripta + "S"

ElseIf chave = t(letra) Then

Descripta = Descripta + "T"

ElseIf chave = u(letra) Then

Descripta = Descripta + "U"

ElseIf chave = v(letra) Then

Descripta = Descripta + "V"

ElseIf chave = w(letra) Then

Descripta = Descripta + "W"

ElseIf chave = x(letra) Then

Descripta = Descripta + "X"

ElseIf chave = y(letra) Then

Descripta = Descripta + "Y"

ElseIf chave = z(letra) Then

Descripta = Descripta + "Z"

ElseIf chave = Espaco(letra) Then

Descripta = Descripta + " "

ElseIf chave = um(letra) Then

Descripta = Descripta + "1"

ElseIf chave = dois(letra) Then

Descripta = Descripta + "2"

ElseIf chave = tres(letra) Then

Descripta = Descripta + "3"

ElseIf chave = quatro(letra) Then

Descripta = Descripta + "4"

ElseIf chave = cinco(letra) Then

Descripta = Descripta + "5"

ElseIf chave = seis(letra) Then

Descripta = Descripta + "6"

ElseIf chave = sete(letra) Then

Descripta = Descripta + "7"

ElseIf chave = oito(letra) Then

Descripta = Descripta + "8"

ElseIf chave = nove(letra) Then

Descripta = Descripta + "9"

ElseIf chave = zero(letra) Then

Descripta = Descripta + "0"

ElseIf chave = aspsim(letra) Then

Descripta = Descripta + "'"

ElseIf chave = exclam(letra) Then

Descripta = Descripta + "!"

ElseIf chave = arrob(letra) Then

Descripta = Descripta + "@"

ElseIf chave = sust(letra) Then

Descripta = Descripta + "#"

ElseIf chave = cifrao(letra) Then

Descripta = Descripta + "$"

ElseIf chave = porcento(letra) Then

Descripta = Descripta + "%"

ElseIf chave = comerc(letra) Then

Descripta = Descripta + "&"

ElseIf chave = asterisco(letra) Then

Descripta = Descripta + "*"

ElseIf chave = abpa(letra) Then

Descripta = Descripta + "("

ElseIf chave = fepa(letra) Then

Descripta = Descripta + ")"

ElseIf chave = under(letra) Then

Descripta = Descripta + "_"

ElseIf chave = hif(letra) Then

Descripta = Descripta + "-"

ElseIf chave = cruz(letra) Then

Descripta = Descripta + "+"

ElseIf chave = igual(letra) Then

Descripta = Descripta + "=

ElseIf chave = ss(letra) Then

Descripta = Descripta + "§"

ElseIf chave = abchave(letra) Then

Descripta = Descripta + "{"

ElseIf chave = abco(letra) Then

Descripta = Descripta + "["

ElseIf chave = apqno(letra) Then

Descripta = Descripta + "ª"

ElseIf chave = fechave(letra) Then

Descripta = Descripta + "}"

ElseIf chave = feco(letra) Then

Descripta = Descripta + ]"

ElseIf chave = opqno(letra) Then

Descripta = Descripta + "º"

ElseIf chave = menor(letra) Then

Descripta = Descripta + "<"

ElseIf chave = maior(letra) Then

Descripta = Descripta + ">"

ElseIf chave = virgula(letra) Then

Descripta = Descripta + ","

ElseIf chave = pontofim(letra) Then

Descripta = Descripta + "."

ElseIf chave = ponto(letra) Then

Descripta = Descripta + ":"

ElseIf chave = pontovi(letra) Then

Descripta = Descripta + ";"

ElseIf chave = interrog(letra) Then

Descripta = Descripta + "?"

ElseIf chave = barrainv(letra) Then

Descripta = Descripta + "/"

ElseIf chave = japo(letra) Then

Descripta = Descripta + "|"

ElseIf chave = barra(letra) Then

Descripta = Descripta + "\"

ElseIf chave = aspadu(letra) Then

Descripta = Descripta + """"

ElseIf chave = ump(letra) Then

Descripta = Descripta + "¹"

ElseIf chave = doisp(letra) Then

Descripta = Descripta + "²"

ElseIf chave = tresp(letra) Then

Descripta = Descripta + "³"

ElseIf chave = funder(letra) Then

Descripta = Descripta + "£"

ElseIf chave = ccortado(letra) Then

Descripta = Descripta + "¢"

ElseIf chave = zoinfech(letra) Then

Descripta = Descripta + "¬"

ElseIf chave = ã(letra) Then

Descripta = Descripta + "Ã"

ElseIf chave = â(letra) Then

Descripta = Descripta + "Â"

ElseIf chave = á(letra) Then

Descripta = Descripta + "Á"

ElseIf chave = à(letra) Then

Descripta = Descripta + "À"

ElseIf chave = ä(letra) Then

Descripta = Descripta + "Ä"

ElseIf chave = ê(letra) Then

Descripta = Descripta + "Ê"

ElseIf chave = é(letra) Then

Descripta = Descripta + "É"

ElseIf chave = è(letra) Then

Descripta = Descripta + "È"

ElseIf chave = ë(letra) Then

Descripta = Descripta + "Ë"

ElseIf chave = î(letra) Then

Descripta = Descripta + "Î"

ElseIf chave = í(letra) Then

Descripta = Descripta + "Í"

ElseIf chave = ì(letra) Then

Descripta = Descripta + "Ì"

ElseIf chave = ï(letra) Then

Descripta = Descripta + "Ï"

ElseIf chave = õ(letra) Then

Descripta = Descripta + "Õ"

ElseIf chave = ô(letra) Then

Descripta = Descripta + "Ô"

ElseIf chave = ó(letra) Then

Descripta = Descripta + "Ó"

ElseIf chave = ò(letra) Then

Descripta = Descripta + "Ò"

ElseIf chave = ö(letra) Then

Descripta = Descripta + "Ö"

ElseIf chave = û(letra) Then

Descripta = Descripta + "Û"

ElseIf chave = ú(letra) Then

Descripta = Descripta + "Ú"

ElseIf chave = ù(letra) Then

Descripta = Descripta + "Ù"

ElseIf chave = ü(letra) Then

Descripta = Descripta + "Ü"

ElseIf chave = não(letra) Then

Descripta = Descripta + "não"

ElseIf chave = ç(letra) Then

Descripta = Descripta + "Ç"

ElseIf chave = tio(letra) Then

Descripta = Descripta + "~"

ElseIf chave = chapeu(letra) Then

Descripta = Descripta + "^"

ElseIf chave = pesq(letra) Then

Descripta = Descripta + "`"

ElseIf chave = pdir(letra) Then

Descripta = Descripta + "´"

ElseIf chave = pp(letra) Then

Descripta = Descripta + "¨"

End If

Next letra

Next busca

End Function

e eu qria fazer do seguinte modo:

a pessoa digita 3 numeros numa text ou 1 numero em 3 text e esses 3 numeros ficam gravados no arquivo gerado e a soma dela gera a criptografia, tipo assim: digitei a letra 'a' e o codigo de 'a' é '001' e vamo fazer de conta que a pessoa digitou '123' 1+2+3=6

entaum ficaria assim: 001*6=006 e assim por diante

o arquivo vai ficar assim: 123006 123 é a chave e 006 é a letra 'a' criptografada

se alguém tiver 1 ideia mais pratica d como criar 1 projeto de criptografia com chave e simples, sou todo ouvidos....valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Por que você não usa o código ASCII/ANSI de cada caracter ao invés de dar um valor para cada? Fica bem mais simples. Veja estas três funções abaixo:

Public Function Criptografar(ByVal texto As String, ByVal chave As String) As String
    Dim n As Integer
    Dim retorno As String
    Dim nchave As Integer
    
    nchave = CalculaChave(chave)
    retorno = ""
    For i = 1 To Len(texto)
        c = Asc(Mid(texto, i, 1)) * nchave & "|"
        retorno = retorno & c
    Next
    
    Criptografar = retorno
End Function

Public Function Descriptografar(ByVal texto As String, ByVal chave As String) As String
    Dim n As Integer
    Dim retorno As String
    Dim nchave As Integer
    
    nchave = CalculaChave(chave)
    retorno = ""
    For Each valor In Split(texto, "|")
        c = Val(valor) / nchave
        retorno = retorno & Chr(c)
    Next
    
    Descriptografar = retorno
End Function

Public Function CalculaChave(ByVal chave As String) As Integer
    Dim n As Integer
    
    n = 0
    For i = 1 To Len(chave)
        n = n + Val(Mid(chave, i, 1))
    Next
    
    CalculaChave = n
End Function
Coloque-as em um módulo ou num form e depois você poderá fazer:
chave = 123

s1 = Criptografar("abc", chave)
MsgBox s1

s2 = Descriptografar(s1, chave)
MsgBox s2

É isso que você quer?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Por que você não usa o código ASCII/ANSI de cada caracter ao invés de dar um valor para cada? Fica bem mais simples. Veja estas três funções abaixo:

Public Function Criptografar(ByVal texto As String, ByVal chave As String) As String
    Dim n As Integer
    Dim retorno As String
    Dim nchave As Integer
    
    nchave = CalculaChave(chave)
    retorno = ""
    For i = 1 To Len(texto)
        c = Asc(Mid(texto, i, 1)) * nchave & "|"
        retorno = retorno & c
    Next
    
    Criptografar = retorno
End Function

Public Function Descriptografar(ByVal texto As String, ByVal chave As String) As String
    Dim n As Integer
    Dim retorno As String
    Dim nchave As Integer
    
    nchave = CalculaChave(chave)
    retorno = ""
    For Each valor In Split(texto, "|")
        c = Val(valor) / nchave
        retorno = retorno & Chr(c)
    Next
    
    Descriptografar = retorno
End Function

Public Function CalculaChave(ByVal chave As String) As Integer
    Dim n As Integer
    
    n = 0
    For i = 1 To Len(chave)
        n = n + Val(Mid(chave, i, 1))
    Next
    
    CalculaChave = n
End Function
Coloque-as em um módulo ou num form e depois você poderá fazer:
chave = 123

s1 = Criptografar("abc", chave)
MsgBox s1

s2 = Descriptografar(s1, chave)
MsgBox s2

É isso que você quer?

Abraços,

Graymalkin

sim, mas acontece que esse programa vai rodar em 2 pcs, em 1 ele vai criptografar e no outro descriptografar, entaum vou ter q gerar 1 arquivo com ele criptografado, entaum acredito q a chave vai ter q ser inserida no arquivo e depois compreendido pelo programa na hr de descriptografar....e somente com a chave certa q ele descriptografa.....valeu....

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...