Member 14112738 Ответов: 2

Я попытался сделать кодер/декодер с пользовательским ключом, но он экспортирует тот же файл


Я попытался создать программу, которая открывает 2 файла закодированный файл и ключ, который будет декодировать этот файл и экспортировать новый файл на рабочий стол. Программа работает, но она экспортирует один и тот же файл (закодированный), как ничто декодированное. пожалуйста, помогите.
Я бы хотел, чтобы вы объяснили мне, что я сделал не так, чтобы я мог исправить себя в будущем.
Большое спасибо!

Что я уже пробовал:

Imports System.IO

Public Class d3c0d34
    Private Sub d3c0d34_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        OpenFileDialog1.Title = "Please select d3c0d34 file:"
        OpenFileDialog1.Filter = "d3c0d34 files|*.d3c0d34"

        If OpenFileDialog1.ShowDialog = DialogResult.OK Then

            Label1.Text = "Selected key : " + OpenFileDialog1.FileName
            Dim decoderkey As String
            decoderkey = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)
            MsgBox("Please select file to decode with key")
            OpenFileDialog2.Title = "Please select file to decode with key"
            OpenFileDialog2.Filter = "text files|*.txt"


            If OpenFileDialog2.ShowDialog = DialogResult.OK Then
                Label2.Text = "Selected file : " + OpenFileDialog2.FileName

            Else
                MsgBox("You have not selected a file to decode")
                OpenFileDialog2.ShowDialog()
            End If
            Dim filetodecode As String = My.Computer.FileSystem.ReadAllText(OpenFileDialog2.FileName)
            MsgBox("Attempting to decode file -" + OpenFileDialog2.FileName + "- with key -" + OpenFileDialog1.FileName + "-")
            Dim decodingkeys As String
            Dim path As String = My.Computer.FileSystem.SpecialDirectories.Desktop + "\decodedfile.txt"
            Dim afile As New IO.StreamWriter(path, True)
            Do Until decodingkeys = Nothing
                decodingkeys = New StringReader(decoderkey).ReadLine()
                Dim words As String() = decodingkeys.Split("@")
                Dim fword As String = words(0)
                Dim sword As String = words(1)
                filetodecode.Replace(fword, sword)
                MsgBox(words(1))
                MsgBox(words(2))


            Loop
            afile.WriteLine(filetodecode)
            afile.Close()
        Else
            MsgBox("You have not selected a key")
            OpenFileDialog1.ShowDialog()
        End If
    End Sub

    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click

    End Sub
End Class

2 Ответов

Рейтинг:
16

Patrice T

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш cpde, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Visual Basic / Visual Studio Video Tutorial - Базовая Отладка - YouTube[^]
Visual Basic .NET programming for Beginners - точки останова и средства отладки[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Member 14112738

Спасибо, но не могли бы вы сказать мне, что я сделал не так?

Patrice T

Нет,
вы знаете, как должен работать ваш код, с помощью отладчика вы увидите, что ваш код действительно делает. Вы должны довольно быстро увидеть, где он не делает то, что вы ожидаете.

Member 14112738

Хорошо, спасибо

Рейтинг:
0

Member 14112738

Ключ такой:
один@б
где один является ли персонаж, который должен быть заменен на б в конечном экспортированном файле