在VB.NET中等效于Open for input as

在VB.NET中等效于Open for input as,vb.net,migration,vb6-migration,Vb.net,Migration,Vb6 Migration,您好,我正在将一个应用程序从vb 6迁移到.net,我不知道如何将输入为intfile(0)的开放路径_IN转换为vb.net语法,提前感谢您的帮助,并为我的英语感到抱歉,以下是代码: Open PATH_IN For Input As intFile(0) For intContador = 1 To intDefinicions - 1 intFile(intContador) = FreeFile() Open Targetes(intContador)

您好,我正在将一个应用程序从vb 6迁移到.net,我不知道如何将输入为intfile(0)的开放路径_IN转换为vb.net语法,提前感谢您的帮助,并为我的英语感到抱歉,以下是代码:

 Open PATH_IN For Input As intFile(0) 
For intContador = 1 To intDefinicions - 1
        intFile(intContador) = FreeFile()
        Open Targetes(intContador).Out For Output As intFile(intContador)
Next
    While Not EOF(intFile(0))
        intRegs = intRegs + 1
        Line Input #intFile(0), sRegistre

    If Len(sRegistre) >= 146 Then
            sTipusFitxerEMV = Mid(sRegistre, 144, 3)
            sTipusFitxerEMV = verificarTipusFitxerHOST(sTipusFitxerEMV)
            bTipusFitxerEMV = True
            ciCVV = Mid(sRegistre, 147, 3)
            sRegistre = Left(sRegistre, 143)
        Else
            bTipusFitxerEMV = False
        End If

        sBIN = Left(sRegistre, LEN_BIN)
        bTrobat = False
        For intConta = 1 To intDefinicions - 1
            If Targetes(intConta).BIN = sBIN Then
                bTrobat = True
                sNewReg = "$" & transCaractersEspecials(sRegistre) & Chr(Hex2Dec(22)) & ComposaBanda(sRegistre, Targetes(intConta).Banda)



                If Targetes(intConta).EMV Then
                    sNewReg = sNewReg & ComposaEMV(sRegistre, Targetes(intConta).Identificacio, Targetes(intConta).PEK, Targetes(intConta).Banda, ciCVV)
                Else
                    iPosNoEMV = Len(sNewReg)
                    sNewReg = sNewReg & String2Hex(sNewReg)
                    sNewReg = Mid(sNewReg, 1, iPosNoEMV)
                End If

                If bTipusFitxerEMV And Targetes(intConta).EMV Then
                    escriureFitxerEMV sNewReg & "#END#", intConta, sTipusFitxerEMV
            Else
                    Print #intFile(intConta), sNewReg & "#END#"
            End If

            End If
        Next
        If Not bTrobat Then
            MsgBox "It do not exist" & vbLf & vbCr & sRegistre, vbCritical, "Atention"
    End If
Wend

对于文件读取,您需要将其更改为使用StreamReader对象

e、 g


对于文件读取,您需要将其更改为使用StreamReader对象

e、 g


我刚刚发现:FileOpen(intFile(0),PATH_IN,OpenMode.Input)For intContador=1到intdefinitions-1 intFile(intContador)=FreeFile()FileOpen(intFile(intContador),Targetes(intContador.Out,OpenMode.Output)下一个'Llegim tots els注册表,而不是EOF(intFile(0))intRegs=intRegs+1 sregstre=LineInput(intFile(0))是否正确?或者我错了?FileOpen仍然使用intFile(0),这是一个文件句柄和旧样式。说明:“要一次读取一行文本的文件,请使用My.Computer.FileSystem对象的OpenTextFileReader方法。OpenTextFileReader方法返回StreamReader对象。您可以使用StreamReader对象的ReadLine方法一次读取一行文件。”请检查我刚刚找到的:FileOpen(intFile(0),PATH_IN,OpenMode.Input)用于intContador=1到intdefinitions-1 intFile(intContador)=FreeFile()文件打开(intFile(intContador),Targetes(intContador.Out,OpenMode.Output)下一个'Llegim tots els注册表,而不是EOF(intFile(0))intRegs=intRegs+1 sregstre=LineInput(intFile(0))是否正确?或者我错了?FileOpen仍然使用intFile(0),这是一个文件句柄和旧样式。说明:“要一次读取一行文本的文件,请使用My.Computer.FileSystem对象的OpenTextFileReader方法。OpenTextFileReader方法返回StreamReader对象。您可以使用StreamReader对象的ReadLine方法一次读取一行文件。”请检查是否要转换为.NET的做事方式(在这种情况下,来自MarkusEgle的答案就是要走的路),还是只想做使其在.NET中工作所需的最低限度的工作?是否要转换为.NET的做事方式(在这种情况下,来自MarkusEgle的答案就是要走的路)或者,您只是想尽可能少地让它在.NET中工作?
Using streamReader As System.IO.StreamReader = System.IO.File.OpenText(PATH_IN)
    While Not streamReader.EndOfStream
        sRegistre = streamReader.ReadLine()
        ...
    End While
End Using