Jump to content
a3deluxe

Substituir Letras

Recommended Posts

a3deluxe

Boa tarde,

Precisava de uma ajuda no meu programa no seguinte:

O meu programa gera 12 Passwords referente aos 12 mêses do Ano,com as letras (A,B e C):

------------------------------------------------------------------------------------------

    Const PwdKey = &H9A

    Const TxtFile = "c:\Filetxt.txt"

    Const TxtFileSubs = "c:\Filetxt2.txt" '' Novo ficheiro a ser criado

    Private Months As String() = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"}

    Private txtMonths(11) As TextBox

    Private Sub GenPwdForm_Load(sender As Object, e As EventArgs) Handles Me.Load
        txtMonths(0) = txtJan
        txtMonths(1) = txtFev
        txtMonths(2) = txtMar
        txtMonths(3) = txtAbr
        txtMonths(4) = txtMai
        txtMonths(5) = txtJun
        txtMonths(6) = txtJul
        txtMonths(7) = txtAgo
        txtMonths(8) = txtSet
        txtMonths(9) = txtOut
        txtMonths(10) = txtNov
        txtMonths(11) = txtDez
    End Sub

   Private Function GenerateRandomPassword() As String
        Dim Input As String = "ABC"
        Dim PwdBuilder As New System.Text.StringBuilder(5)

        While Input.Length > 0
            Dim index As Integer = CInt(Math.Floor(Rnd() * Input.Length))
            PwdBuilder.Append(Input.ElementAt(index))
            Input = Input.Remove(index, 1)
        End While

        Return PwdBuilder.ToString()
    End Function

       Private Sub btnGuardarTxt_Click(sender As Object, e As EventArgs) Handles btnGuardarTxt.Click
        Try
            If CheckPasswords() Then
                Using PwdWriter As New IO.StreamWriter(TxtFile)
                    For i As Integer = 0 To 11
                        PwdWriter.Write(String.Format("{0:D2}: ", i + 1))
                        PwdWriter.WriteLine(txtMonths(i).Text)
                    Next
                End Using
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Sub

---------------------------------------------------------------------------------

- Queria que o novo botão fize-se o Seguinte:

Criar um ficheiro (Filetxt2.txt )igual ao do ficheiro (Filetxt.txt), criado pelo btnGuardarTxt , mas substituindo as letras A, B e C por:

A= X

B = T

C=Z

 

Por exemplo:

1-carregando no botão btnGuardarTxt ele cria o seguinte:

01: AACB

02: BCBA

03: CCAB

....

2- Com o novo botão para criar o ficheiro (c:\Filetxt2.txt), substituía as letras e ficava:

01: XXZT

02: TZTX

03: ZZXT

....

Obrigado

 

Edited by a3deluxe

Share this post


Link to post
Share on other sites
ribeiro55

Falta aí código para perceber exactamente a relação entre as coisas. Por exemplo, não é clara qualquer relação do "GenerateRandomPassword" com a história dos meses do ano.
Vou assumir, porque também não dá para perceber, que o método "CheckPasswords" está de alguma forma a verificar se as caixas já têm as passwords, e que se tiver, são geradas com o "GenerateRandomPassword".
Como não tens repetição nas substituições, podes simplesmente encadear 3 replaces no que estiver na textbox, assim:

PwdWriter.WriteLine(txtMonths(i).Text.Replace("A","X").Replace("B","T").Replace("C","Z"))

 


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
a3deluxe

ribeiro55,

Muito Obrigado, era isso mesmo que faltava.

Era bem mais simples doque eu pensava. 

Sim faltava código, tinha me esquecido. 

Mas já esta resolvido.

Muito obrigado mais uma vez.

Boa Noite.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.