25/05 15:29
marcosta
Buon giorno a tutti.
Sto cercando di convertire un vecchio programma VB6 in VB.NET, sto usando VB2019 ma credo non abbia molta importanza.
nel programma VB6 avevo creato una Type per leggere e scrivere un file random purtroppo non riesco a convertirla in vb.net di conseguenza non riesco a leggere i dati salvati con la versione VB6, ho provato a fare la conversione con vb2005.net, converte tutto il resto abbastanza bene ma quando tento di leggere i file niente da fare, chiedo aiuto.
Allego le die versioni.
VB6:
VB.NET Tradotto da VB2005.net
Ho fatto diversi Tentativi come sostituire short con integer o char con String ma senza soluzione.
Ho notato che la lunghezza di Sal misurata con una Len(Sal) è diversa tra le due versioni e probabilmente è il motivo della mancata lettura del file.
il file lo apro con:
Naturalmente ho cercato su internet ma non ho trovato nulla di significativo.
Grazie
Sto cercando di convertire un vecchio programma VB6 in VB.NET, sto usando VB2019 ma credo non abbia molta importanza.
nel programma VB6 avevo creato una Type per leggere e scrivere un file random purtroppo non riesco a convertirla in vb.net di conseguenza non riesco a leggere i dati salvati con la versione VB6, ho provato a fare la conversione con vb2005.net, converte tutto il resto abbastanza bene ma quando tento di leggere i file niente da fare, chiedo aiuto.
Allego le die versioni.
VB6:
Type SalvaLas FileName As String * 80 SigLas As String * 6 CoordLasX(1 To 50) As Integer CoordLasY(1 To 50) As Integer RuotaLas As Integer LungLas As Integer LargLas As Integer NVert As Integer NLas As Integer Tral(1 To 5, 1 To 2) As Integer NTral As Integer Fer1(1 To 5, 1 To 3) As Integer Fer2(1 To 5, 1 To 3) As Integer Fer3(1 To 5, 1 To 3) As Integer PolisX(1 To 80, 1 To 4) As Integer PolisY(1 To 80, 1 To 4) As Integer PolMaxX(1 To 80) As Integer PolMaxY(1 To 80) As Integer PolisH(80) As Integer NPol As Integer ForiX(1 To 80, 1 To 4) As Integer ForiY(1 To 80, 1 To 4) As Integer ForMaxX(1 To 80) As Integer ForMaxY(1 To 80) As Integer NFor As Integer RisX(1 To 80, 1 To 4) As Integer RisY(1 To 80, 1 To 4) As Integer RisMaxX(1 To 80) As Integer RisMaxY(1 To 80) As Integer RisH(1 To 80) As Integer NRis As Integer PosFileOr As Integer Offsetx As Integer Offsety As Integer Separatore As Integer LargSep As Integer LungSep As Integer PosLas As Integer LatoLas As Integer NPic As Integer Testo As String * 20 End Type Public Sal As SalvaLas
VB.NET Tradotto da VB2005.net
'UPGRADE_WARNING: La dimensione della stringa di lunghezza fissa deve essere contenuta nel buffer. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
<VBFixedString(80), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=80)> Public FileName As Char
'UPGRADE_WARNING: La dimensione della stringa di lunghezza fissa deve essere contenuta nel buffer. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
<VBFixedString(6), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=6)> Public SigLas As Char
<VBFixedArray(49)> Dim CoordLasX() As Short
<VBFixedArray(49)> Dim CoordLasY() As Short
Dim RuotaLas As Short
Dim LungLas As Short
Dim LargLas As Short
Dim NVert As Short
Dim NLas As Short
<VBFixedArray(4, 1)> Dim Tral(,) As Short
Dim NTral As Short 'Numero tralicci nella Lastra
<VBFixedArray(4, 2)> Dim Fer1(,) As Short
<VBFixedArray(4, 2)> Dim Fer2(,) As Short
<VBFixedArray(4, 2)> Dim Fer3(,) As Short
<VBFixedArray(79, 3)> Dim PolisX(,) As Short
<VBFixedArray(79, 3)> Dim PolisY(,) As Short
<VBFixedArray(79)> Dim PolMaxX() As Short
<VBFixedArray(79)> Dim PolMaxY() As Short
<VBFixedArray(79)> Dim PolisH() As Short
Dim NPol As Short
<VBFixedArray(79, 3)> Dim ForiX(,) As Short
<VBFixedArray(79, 3)> Dim ForiY(,) As Short
<VBFixedArray(79)> Dim ForMaxX() As Short
<VBFixedArray(79)> Dim ForMaxY() As Short
Dim NFor As Short
<VBFixedArray(79, 3)> Dim RisX(,) As Short
<VBFixedArray(79, 3)> Dim RisY(,) As Short
<VBFixedArray(79)> Dim RisMaxX() As Short
<VBFixedArray(79)> Dim RisMaxY() As Short
<VBFixedArray(79)> Dim RisH() As Short
Dim NRis As Short
Dim PosFileOr As Short
Dim Offsetx As Short
Dim Offsety As Short
Dim Separatore As Short
Dim LargSep As Short
Dim LungSep As Short
Dim PosLas As Short
Dim LatoLas As Short
Dim NPic As Short
'UPGRADE_WARNING: La dimensione della stringa di lunghezza fissa deve essere contenuta nel buffer. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
<VBFixedString(20), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=20)> Public Testo As Char
'UPGRADE_TODO: "Initialize" deve essere chiamato per inizializzare istanze di questa struttura. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
Public Sub Initialize()
'UPGRADE_WARNING: Il limite inferiore della matrice CoordLasX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim CoordLasX(49)
'UPGRADE_WARNING: Il limite inferiore della matrice CoordLasY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim CoordLasY(49)
'UPGRADE_WARNING: Il limite inferiore della matrice Tral è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Tral(4, 1)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer1 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer1(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer2 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer2(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer3 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer3(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice PolisX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolisX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice PolisY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolisY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice PolMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice PolMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolMaxY(79)
ReDim PolisH(79)
'UPGRADE_WARNING: Il limite inferiore della matrice ForiX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForiX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice ForiY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForiY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice ForMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice ForMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForMaxY(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice RisY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice RisMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisMaxY(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisH è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisH(79)
End Sub
End Structure
Public Sal As SalvaLas
<VBFixedString(80), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=80)> Public FileName As Char
'UPGRADE_WARNING: La dimensione della stringa di lunghezza fissa deve essere contenuta nel buffer. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
<VBFixedString(6), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=6)> Public SigLas As Char
<VBFixedArray(49)> Dim CoordLasX() As Short
<VBFixedArray(49)> Dim CoordLasY() As Short
Dim RuotaLas As Short
Dim LungLas As Short
Dim LargLas As Short
Dim NVert As Short
Dim NLas As Short
<VBFixedArray(4, 1)> Dim Tral(,) As Short
Dim NTral As Short 'Numero tralicci nella Lastra
<VBFixedArray(4, 2)> Dim Fer1(,) As Short
<VBFixedArray(4, 2)> Dim Fer2(,) As Short
<VBFixedArray(4, 2)> Dim Fer3(,) As Short
<VBFixedArray(79, 3)> Dim PolisX(,) As Short
<VBFixedArray(79, 3)> Dim PolisY(,) As Short
<VBFixedArray(79)> Dim PolMaxX() As Short
<VBFixedArray(79)> Dim PolMaxY() As Short
<VBFixedArray(79)> Dim PolisH() As Short
Dim NPol As Short
<VBFixedArray(79, 3)> Dim ForiX(,) As Short
<VBFixedArray(79, 3)> Dim ForiY(,) As Short
<VBFixedArray(79)> Dim ForMaxX() As Short
<VBFixedArray(79)> Dim ForMaxY() As Short
Dim NFor As Short
<VBFixedArray(79, 3)> Dim RisX(,) As Short
<VBFixedArray(79, 3)> Dim RisY(,) As Short
<VBFixedArray(79)> Dim RisMaxX() As Short
<VBFixedArray(79)> Dim RisMaxY() As Short
<VBFixedArray(79)> Dim RisH() As Short
Dim NRis As Short
Dim PosFileOr As Short
Dim Offsetx As Short
Dim Offsety As Short
Dim Separatore As Short
Dim LargSep As Short
Dim LungSep As Short
Dim PosLas As Short
Dim LatoLas As Short
Dim NPic As Short
'UPGRADE_WARNING: La dimensione della stringa di lunghezza fissa deve essere contenuta nel buffer. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
<VBFixedString(20), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=20)> Public Testo As Char
'UPGRADE_TODO: "Initialize" deve essere chiamato per inizializzare istanze di questa struttura. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
Public Sub Initialize()
'UPGRADE_WARNING: Il limite inferiore della matrice CoordLasX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim CoordLasX(49)
'UPGRADE_WARNING: Il limite inferiore della matrice CoordLasY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim CoordLasY(49)
'UPGRADE_WARNING: Il limite inferiore della matrice Tral è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Tral(4, 1)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer1 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer1(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer2 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer2(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice Fer3 è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim Fer3(4, 2)
'UPGRADE_WARNING: Il limite inferiore della matrice PolisX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolisX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice PolisY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolisY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice PolMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice PolMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim PolMaxY(79)
ReDim PolisH(79)
'UPGRADE_WARNING: Il limite inferiore della matrice ForiX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForiX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice ForiY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForiY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice ForMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice ForMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim ForMaxY(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisX è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisX(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice RisY è stato cambiato da 1,1 a 0,0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisY(79, 3)
'UPGRADE_WARNING: Il limite inferiore della matrice RisMaxX è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisMaxX(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisMaxY è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisMaxY(79)
'UPGRADE_WARNING: Il limite inferiore della matrice RisH è stato cambiato da 1 a 0. Fare clic per ulteriori informazioni: 'MS.VSCC.v80/dv_commoner/local/…;'
ReDim RisH(79)
End Sub
End Structure
Public Sal As SalvaLas
Ho fatto diversi Tentativi come sostituire short con integer o char con String ma senza soluzione.
Ho notato che la lunghezza di Sal misurata con una Len(Sal) è diversa tra le due versioni e probabilmente è il motivo della mancata lettura del file.
il file lo apro con:
ffCP = FreeFile() FileOpen(ffCP, NomeFile(1) + ".dat", OpenMode.Random,,, Len(Sal)) FileGet(ffCP, Sal,)
Naturalmente ho cercato su internet ma non ho trovato nulla di significativo.
Grazie
Ultima modifica effettuata da Thejuster 25/05 17:42
aaa