在VB.NET中等效于Open for input as
您好,我正在将一个应用程序从vb 6迁移到.net,我不知道如何将输入为intfile(0)的开放路径_IN转换为vb.net语法,提前感谢您的帮助,并为我的英语感到抱歉,以下是代码:在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)
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