SkullDocDan Ответов: 3

Как читать из файла .txt, но между двумя точками в файле


Я написал графический интерфейс в Vb.net чтобы перечислить все мои сценарии powershell и иметь возможность легко загружать и запускать их одним нажатием кнопки. Я ищу экран инструкций, чтобы извлечь из сценария PowerShell информацию о том, как использовать этот сценарий. У меня возникли проблемы, просто вытягивая только текст между <# #> В верхней части скрипта.

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

Это работает в C# "строку commentText = ExtractStringFromFile(fullFileName, "в<#", "#&ГТ;") " но я ищу, чтобы получить это, чтобы работать VB.Net

3 Ответов

Рейтинг:
9

kgmmurugesh

Dim lstring As String = "murugesh #read this text# abc"
       Dim lary() As String
       lary = Split(lstring, "#")
       MsgBox(lary(1))


SkullDocDan

Это действительно работает правильно, но я натыкаюсь на дополнительный # в синопсисе, заставляющий его преждевременно останавливаться. Знаете ли Вы способ, чтобы он читался между <# и #gt; в VB.Net-что?

kgmmurugesh

Dim lstring As String = "murugesh <#read this text#> abc"
Dim lary() как строка
Dim lpos1, lpos2 как целое число
lpos1 = InStr(lstring, "<#") + 2
lpos2 = InStr(lstring, "#>")


MsgBox(Mid(lstring, lpos1, lpos2 - lpos1))

Рейтинг:
1

OriginalGriff

Не существует стандартного метода под названием "ExtractStringFromFile" - поэтому вам нужно будет записать его и либо включить сборку в свой проект, либо перевести код C# в VB.

У нас нет доступа к вашей системе, поэтому мы даже не можем начать догадываться, где она находится или как она работает - так что это зависит от вас. Начните с Вашего проекта C#, наведите курсор мыши на вызов метода, щелкните правой кнопкой мыши и выберите "Перейти к определению". Это может найти его для вас.


Maciej Los

5ed!

Рейтинг:
0

SkullDocDan

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

Private Sub buttonExecuteScript_Click(sender As Object, e As EventArgs) Handles buttonExecuteScript.Click
        
        Me.richTextBoxScriptHeader.Clear()
        fullFileName = strFilePath 

        If Not String.IsNullOrEmpty(fullFileName) Then
            Dim commentText As String = ExtractStringFromFile(fullFileName, "<#", "#>")
            Me.richTextBoxScriptHeader.Text = commentText
        End If
        End Sub
Private Function ExtractStringFromFile(ByVal fullFileName As String, ByVal startMarker As String, ByVal endMarker As String) As String
        Dim result As String = String.Empty

        If Not File.Exists(strFilePath) Then
            Msgbox("The passed filename does not exist.")
        End If

        Dim fileText As String = File.ReadAllText(strFilePath)
        Dim startMarkerPosition As Integer = fileText.IndexOf(startMarker) + startMarker.Length
        Dim endMarkerPosition As Integer = fileText.IndexOf(endMarker)

        If endMarkerPosition > startMarkerPosition Then
            result = fileText.Substring(startMarkerPosition, endMarkerPosition - startMarkerPosition)
        End If

        Return result
End Function


Maciej Los

5ed!