Originariamente inviato da PapaIndia
Ciao a tutti è la prima volta che mi trovo quì.
Ho un problemone di compatibilità fra VB5 e .NET ora vi dico:
In Vb5 avevo un programma che scriveva e leggeva un file ad accesso casuale. Il record era formato da due vettori a lunghezza fissa, uno di stringhe a lunghezza fissa e l'altro di single.
Ora riesco a scrivere il file con .Net in modo che da Vb5 posso leggerlo ma non lo leggo con . Net perchè genera errore.
Allego il codice e la segnalazione di errore.
codice:
Module Module1
Public Structure record
<VBFixedArray(23), VBFixedString(16)> Public CampoStringa() As
String
<VBFixedArray(159)> Public CampoSingle() As Single
Public Sub Initialize()
ReDim CampoStringa(23)
ReDim CampoSingle(159)
End Sub
End Structure
Public MachineRecord As New record()
End Module
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
MachineRecord.Initialize()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim aa As Integer = (MachineRecord.CampoSingle.Length * 4) +
(MachineRecord.CampoStringa.Length * 16)
FileOpen(1, "readers.vbnet", OpenMode.Random, , ,
Len(MachineRecord)) 'apro il file da visualizzare
Dim a As Int16
For a = 0 To 159
MachineRecord.CampoSingle(a) = a * 10
Next
FilePut(1, MachineRecord, 1)
FileClose(1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
FileOpen(1, "readers.vbnet", OpenMode.Random, , ,
Len(MachineRecord)) 'apro il file da visualizzare
FileGet(1, MachineRecord, 1)
Label1.Text = Str(MachineRecord.CampoSingle(Val(TextBox1.Text)))
Label2.Text = MachineRecord.CampoStringa(Val(TextBox2.Text))
FileClose(1)
End Sub
Messaggio di errore su Fileget(....):
Eccezione non gestita di tipo "System.IO.IOException" in
microsoft.visualbasic.dll
Informazioni aggiuntive: Lunghezza del record non valida.