Domanda semplice. Che aspetto avrebbe una conversione ugualmente funzionante in C#?Qual è l'equivalente C# di una dichiarazione get in VB6?
VB6:
Dim rec As String * 200
If rs!cJobNum <> "" Then
Open PathFintest & Mid(rs!cJobNum, 2, 5) & ".dat" For Random As #1 Len = 200
s = Val(Mid(rs!cJobNum, 7, 4))
Get #1, Val(Mid(rs!cJobNum, 7, 4)) + 1, rec
Close #1
TestRec = rec
Fail = FindFailure(TestRec)
End If
Questo è stato il mio tentativo in C# (non restituisce risultati simili):
FileStream tempFile = File.OpenRead(tempPath);
var tempBuf = new byte[200];
var tempOffset = Int32.Parse(StringHelper.Mid(rs.Fields["cJobnum"].Value, 7, 4)) + 1;
tempFile.Seek(tempOffset , SeekOrigin.Begin);
tempFile.Read(tempBuf, 0, 200);
rec.Value = new string(System.Text.Encoding.Default.GetChars(tempBuf));
tempFile.Close();
TestRec = rec.Value;
Fail = (string)FindFailure(ref TestRec);
Si prega di leggere la documentazione del centro di assistenza sulla formattazione del codice: se si sta formattando un blocco di codice, si indenta piuttosto che usare i backtick ... sembra un * molto * più chiaro in questo modo. Dovresti anche provare a spiegare a persone che non conoscono VB6 cosa 'Get' fa ... altrimenti ti limiti alle persone che sanno C# * e * VB6 ... –
@JohnSaunders: No, .NET usa UTF -8 di default - che sarà lo stesso di ASCII, per i file che contengono solo caratteri ASCII. –
Questa è una mia vecchia domanda in cui stavo usando 'Put' invece di' Get', ma potrebbe aiutarti a seguire la strada giusta: http://stackoverflow.com/questions/8043167/how-to-read-and -write-interoperable-stringhe-a-un-binario-file-tra-net-e-vb –