VB.NET - Как преобразовать в оператор If-else - PullRequest
0 голосов
/ 30 октября 2018

У меня есть текстовый файл с содержимым ниже, и я хочу преобразовать его в оператор If - Else.


Содержание текстового файла:

11AM_3 = 0
|   11AM_1 = 1
|   |   4PM_1 = 3
|   |   |   4PM_2 = 0
|   |   |   |   11AM_2 = 0 : 0 (0/0)
|   |   |   |   11AM_2 = 2 : 3 (2/0)
|   |   4PM_2 = 3
|   |   |   4PM_3 = 0
|   |   |   |   11AM_2 = 3 : 1 (2/0)
|   11AM_1 = 2
|   |   4PM_1 = 9 : 1 (1/0)

Вот мой код, который может читать содержимое текстового файла, но я не знаю, как преобразовать его в оператор If-else.

OpenFileDialog1.Multiselect = False
OpenFileDialog1.Filter = "TXT (*.txt)|*.txt"

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

    Dim pathoftextfile As String = OpenFileDialog1.FileName

    Dim sr as StreamReader = New StreamReader(pathoftextfile)

    Do while sr.peek>=0
         ' code here to read each line and convert into if-else

    Loop
    sr.close()
End if

Ожидаемый преобразованный оператор if-else текстового файла должен быть таким:

If (11AM_3=0) then
    If(11AM_1=1) then
        If(4PM_1=3) then
            If(4PM_2=0) then
                If(11AM_2=0) then
                    return 0
                Elseif(11AM_2=2) then
                    return 3
                End if
            end if
        Elseif(4PM_2=3) then
            If(4PM_3=0) then
                If(11AM_2=3) then
                    return 1
                end if
            end if
        End if
    ElseIf(11AM_2=2) then
        If(4PM_1=9) then
            return 1
        end if
    end if
end if

Что я могу использовать при чтении каждого символа в строке? Как в

11AM_3 = 0

Я хочу прочитать равенства (=), чтобы я мог напечатать начало оператора If, который будет

If (11AM_3=0) then

с соответствующим «End If», тогда

11AM_1 = 1

, который будет внутри 11AM_3 (например)

If (11AM_3=0) then
    If(11AM_1=1) then

и символы равенства (=) и двоеточия (:), которые указывают на то, что значение после двоеточия (:) будет возвращено, как в

11AM_2 = 0: 0

, что равно

If (11AM_2 = 0) then
     return 0
End If

P.S. Я хочу вывести преобразованный оператор If - Else в новый текстовый файл (output.txt).

1 Ответ

0 голосов
/ 12 ноября 2018

Нет способа конвертировать текстовый файл напрямую в скомпилированный код .NET.

Похоже, что вы просите прочитать текстовый файл, а затем .NET создать структуру if-then из этого файла. Там просто нет способа сделать это напрямую. Вам понадобится какая-то временная структура для хранения логики через , вероятно, классы или базу данных.

Я не думаю, что вы найдете здесь кого-то, кто готов выполнить всю эту логику Особенно, не зная точно, как вы пытаетесь структурировать вещи и что вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...