ramon Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 Bom tenho tres matrizes e gostaria de salvar em um arquivo porem gostaria de criptografalo antes de salvar eleEntão pensei em fazer For Y = 0 To 100 For X = 0 To 50 For Z = 0 To 20 conteudo = conteudo & banco(Y, X, Z) Next Z Next XNext Yconteudo = criptografia(conteudo)Open caminho For Output As #1print #1, conteúdoClose #1porem eu to concatenando e ta ficando muito lento para salvar, alguém poderia me ajudar a melhorar este codigo para ficar mais rápido a sua gravaçãoEste assunto já foi discutido aqui mas eu gostaria de uma ajudinha para concatenar mais rapidamente teria algum jeito Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 Dê uma olhada no 7º post deste tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=44682Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 não entendi esta parte conteúdo = string(200*20*13, chr(0))como que eu faco para esta variavel ficar sem um limite especifico Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 não entendi esta parte conteúdo = string(200*20*13, chr(0))como que eu faco para esta variavel ficar sem um limite especifico Ela não tem limite, mas você tem. Veja:For Y = 0 To 100 For X = 0 To 50 For Z = 0 To 20 conteudo = conteudo & banco(Y, X, Z) Next Z Next X Next Y Uma vez que você definiu os valores nos Fors ali o número de iterações (loops) *é* fixo, ou seja, 101*51*21. Então, sua string deverá ter este tamanho, ou seja: conteúdo = string(101*51*21, chr(0)) Se você fizer algo como: For Y = 0 To limite1 For X = 0 To limite2 For Z = 0 To limite3 conteudo = conteudo & banco(Y, X, Z) Next Z Next X Next Y Sua string será então: conteúdo = string(limite1*limite2*limite3, chr(0))Dá no mesmo.Sacou? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 mas você ta fazendo a comparacao como se a minha matrix tive-se 1byte em cada vetorE seu tive-se uma palavra com 20 caracteres "Este site é bom" ai aumentaria o limite Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 mas você ta fazendo a comparacao como se a minha matrix tive-se 1byte em cada vetorE seu tive-se uma palavra com 20 caracteres "Este site é bom" ai aumentaria o limite Ah, sim! De fato. Nesse caso então, a solução acima não é viável. Mas, já experimentou escrever diretamente no arquivo ao invés de concatenar em uma string para depois fazer isso?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 já mas antes de gravar no arquivo eu quero criptografar para depois salvar num arquivoae que ta o problema Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 já mas antes de gravar no arquivo eu quero criptografar para depois salvar num arquivoae que ta o problema Criptografa cada parte, ué?! Não vai dar no mesmo? Ou seja:print #n, criptografia(banco(x, y, z))A não ser que a sua função de criptografia utilize o tamanho da string nos cálculos para criptografar. Nesse caso, aí complica.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 Sim ela usa a funcao len para issoteria algum jeito de acelerar a minha função ou você tem uma funcao que faca criptografia mais rapidamente e que poderia postar ai Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 teria algum jeito de acelerar a minha função ou você tem uma funcao que faca criptografia mais rapidamente e que poderia postar ai Qual é a sua função?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 é do propio forum veja http://scriptbrasil.com.br/forum/index.php?showtopic=31417 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 é do propio forum veja http://scriptbrasil.com.br/forum/index.php?showtopic=31417 Nessa função o tamanho da string não influencia em nada. Ele é utilizado apenas para percorrer a string. Portanto, não existe problema algum em concatenar as partes separadas, juntar tudo e depois descriptografar. Veja esse teste que fiz aqui: k = Criptografia("teste1") j = Criptografia("teste2") Debug.Print Criptografia(k & j)Veja que juntei k e j antes de descriptografar e a saída é correta.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 bom então mais rapido do que isso não dá?outra teria como gravar no arquivo tudo em uma linha continua pois a o print grava linha por linha e o arquivo figa muito grandeou teriei que usar na forma binaria Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 bom então mais rapido do que isso não dá?Veja a quantidade strings que você está manipulando... acho que realmente vai ficar difícil acelerar esse processo (a não ser fazendo ele em C... ).outra teria como gravar no arquivo tudo em uma linha continua pois a o print grava linha por linha e o arquivo figa muito grandeou teriei que usar na forma binariaSim, nesse caso seria melhor utilizar o modo binário e a instrução Put ao invés do Print.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 a instrucao put consegue concatenar o conteudo de uma variavel para um arquivo não existe uma funcao que concatena o conteudo de uma variavel para uma outrapois pelo que vi a gravacao é rapida e na verdade a instrucao put esta sim concatenando não é? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 a instrucao put consegue concatenar o conteudo de uma variavel para um arquivo não existe uma funcao que concatena o conteudo de uma variavel para uma outrapois pelo que vi a gravacao é rapida e na verdade a instrucao put esta sim concatenando não é? Na verdade ela não concatena, apenas insere no final do arquivo. Quando você faz:a = "tes" a = a & "te"Ao fazer a & "te" você estará gerando uma *nova string* e estará atribuindo a mesma à a. O processo *não é* simplesmente chegar no final de "a" e enxertar o novo pedaço, por isso é que o processo vai ficando cada vez mais demorado a medida que a string vai crescendo. Isso se tratando de strings. No caso do Put, a nova string simplesmente é colocada no final do arquivo e não importa o que havia antes (ela nem sequer olha isso), por isso que o processo é bem mais rápido.Sacou? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 beleza so mais uma duvidaPara gravar uso Open Caminho For Binary As #1 For Y = 0 To 100 For X = 0 To 50 For Z = 0 To 20 Put #1, , Criptografia(banco(Y, X, Z) & "@") Next Z Next X Next Y Close #1 E para carregar ta dando pau Open Caminho For Binary As #1 Dados = Split(Input(LOF(1), 1), "@") Close #1 I = 0 For Y = 0 To 100 For X = 0 To 50 For Z = 0 To 20 banco(Y, X, Z) = dados(I) Next Z Next X Next Y Eu teria que descriptografar ae é to me apertando para fazer isto você teria alguma sugestão para funcionar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 Bom usei este agora Open Caminho For Binary As #1 Dados = Input(LOF(1), 1) Dados = Criptografia(Dados) Close #1 mas ta muito lento teria como acelerar istoesta lento na descriptografia uma vez que eu to descriptografando tudo de uma vez só gostaria saber se da para melhorar a descriptografia Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 O problema na outra rotina é que falta incrementar o I dentro do loop mais interior. Caso contrário, ele não vai sair de 0. Quanto a acelerar o processo, como a rotina de descriptografia é a mesma que a de criptografia, continua valendo o que eu disse 5 posts acima.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 mas se eu não descriptografar antes ai que acontece o erro então eu gostaria descriptografar pedacos por pedaco para prencher a matiz como aconteceu no processo de salvar fui salvando cada vetor e criptografando agora eu tenho que descriptogrfar pedaco por pedaco e ao mesmo tempo preencher a matriz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 Bom consegui resolver aqui simplesmente fiz o contrario da outra rotinaValeu pela sua ajuda! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ramon
Bom tenho tres matrizes e gostaria de salvar em um arquivo porem gostaria de criptografalo antes de salvar ele
Então pensei em fazer
For Y = 0 To 100
For X = 0 To 50
For Z = 0 To 20
conteudo = conteudo & banco(Y, X, Z)
Next Z
Next X
Next Y
conteudo = criptografia(conteudo)
Open caminho For Output As #1
print #1, conteúdo
Close #1
porem eu to concatenando e ta ficando muito lento para salvar, alguém poderia me ajudar a melhorar este codigo para ficar mais rápido a sua gravação
Este assunto já foi discutido aqui mas eu gostaria de uma ajudinha para concatenar mais rapidamente teria algum jeito
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados
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.