VB6時代の固定長変数 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 さんじ  (社会人)
投稿日時
2023/3/22 13:26:47
VB6からVB.NETへマイグレーションする際に,
Dim A As String *4
などという文字数固定のプログラムがありますが、
VB.NETはどう記述すればよいでしょうか?
Dim A As String *4
などという文字数固定のプログラムがありますが、
VB.NETはどう記述すればよいでしょうか?
https://learn.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.compatibility.vb6.fixedlengthstring?view=netframework-4.8.1
https://chaipa.hateblo.jp/entry/20070828/1188305793
目的が、VB6 の Get # / Put # ステートメントによる ランダム アクセス ファイルの
入出力であれば、構造体フィールドに VBFixedString 属性を付与しておくことで、
FileGet / FilePut によるファイル入出力時に、固定長文字列相当のやり取りが行われます。
https://atmarkit.itmedia.co.jp/fdotnet/vb6tonet2/vbnet2_03/vbnet2_03_02.html
ただし、VBFixedString 属性による指定は、標準の System.IO 名前空間のクラスを用いた
ファイル入出力では無視されます。VB6 互換機能に頼りたくない場合には、
VB6 側を「固定長文字列を使わない実装」に直してからマイグレーションするか、あるいは
対象がテキストファイルなら、全体を文字列あるいはバイナリとして読み取ってから
文字位置あるいはバイト位置を切り出して読み書きするためのコードを自作するといった
回避策がとられることもあります。