当有多行时如何从文本文件中读取文本并生成一个字符串,以便我可以将其用作 sqlconnection 字符串?

问题描述

我有一个包含多行的配置文件。

DataBaseType =1
ServerName=LAPTOP-XXXX
Database=mydatabase
Connection Timeout=3000
User ID=sa
Password=sasa
ServerIp=xxxx:8083
ServiceType=http://
Backup Driver=D:\
Backup Folder=SWBACKUP
Database Restore=D:\

现在我想通过读取、拆分和连接文本来生成一个字符串,它将是一个 sqlconnection 字符串。应该是

"Data Source=LAPTOP-XXXX;Initial Catalog=mydatabase;User ID=sa;Password=sasa"

我可以使用 streamreader 阅读文本,但我无法拆分和合并这些文本。

解决方法

您可以创建一个方法,将您的配置文件转换为 Dictionary(Of String,String),然后根据需要获取值。

看看这个例子:

Private Function ReadConfigFile(path As String) As Dictionary(Of String,String)
    If (String.IsNullOrWhiteSpace(path)) Then
        Throw New ArgumentNullException("path")
    End If
    If (Not IO.File.Exists(path)) Then
        Throw New ArgumentException("The file does not exist.")
    End If

    Dim config = New Dictionary(Of String,String)
    Dim lines = IO.File.ReadAllLines(path)
    For Each line In lines
        Dim separator = line.IndexOf("=")
        If (separator < 0 OrElse separator = line.Length - 1) Then
            Throw New Exception("The following line is not in a valid format: " & line)
        End If

        Dim key = line.Substring(0,separator)
        Dim value = line.Substring(separator + 1)
        config.Add(key,value)
    Next

    Return config
End Function

示例:Live Demo

这个函数的作用是:

  1. 确保给出了路径
  2. 确保文件作为给定路径存在
  3. 遍历每一行
  4. 确保该行的格式正确(键=值)
  5. 将键/值附加到字典中
,

您可以使用 readline 方法,然后对数据库行进行如下操作:

Dim reader As New StreamReader(filetoimport.Txt,Encoding.Default)

Dim strLine As String

Do 
' Use ReadLine to read from your file line by line
strLine = reader.ReadLine 

Dim retString As String
'to get the string from position 0 length 8
retString = strLine .Substring(0,8)

'check if match
if retString ="Database" Then

Dim valueString As String
valueString = strLine .Substring(9,strLine.length)

...


Loop Until strLine  Is Nothing

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...