C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.86237 の関連記事表示

<< 0 >>
■86237  Re[3]: バイナリデータの途中から切り出して出力する方法
□投稿者/ 魔界の仮面弁士 -(2018/01/02(Tue) 20:44:33)
    2018/01/02(Tue) 21:53:23 編集(投稿者)

    No86236 (へなちょこ さん) に返信
    >> とりあえず VB2017 向けのコードを書いてみました。
    >
    > ただ、私の勉強不足でコードをそのまま張り付けた際のエラーがよく分からない状態です。

    VB2017 以降でないと使用できない構文を利用しています。
    お使いのバージョンは何でしょうか?


    > Public Iterator Function EnumerateTuple(

    「Iterator」や「Yield」を使うには、VB2012 以降のバージョンが必要です。


    > As IEnumerable(Of (Hena As String, Choco As String))

    Visual Basic のタプル構文を使うには、VB2017 以降のバージョンが必要です。

    System.Tuple クラスを使うには .NET 4.0 以降が必要です。

    System.ValueTuple 構造体を使うには .NET 4.7 以降を採用するか、
    もしくは nuget から System.ValueTuple を参照する必要があります。


    ひとまず、VB2005 で動くと思われる程度にまでコードを書き換えてみました。
    (これでも 2002/2003 だと動かないのですが)

    Sub Main()
     For Each entry As String() In EnumerateTuple("Sample.dat", System.Text.Encoding.Unicode)
      MsgBox(entry(0) & vbCrLf & entry(1))
     Next
    End Sub

    Public Function EnumerateTuple(fileName As String, enc As System.Text.Encoding) As List(Of String())
     Dim list As New List(Of String())()
     Using stm As New FileStream(fileName, FileMode.Open), reader As New BinaryReader(stm)
      Do While stm.Position < stm.Length
       reader.ReadBytes(2) '最初の2バイトは読み捨て
       Dim len1 As Integer = 2 * reader.ReadByte() '文字1のバイト数
       Dim len2 As Integer = 2 * reader.ReadByte() '文字2のバイト数
       reader.ReadBytes(4) '次の4バイトは読み捨て
       Dim bin1 As Byte() = reader.ReadBytes(len1) '文字列1のデータ
       Dim bin2 As Byte() = reader.ReadBytes(len2) '文字列2のデータ
       Dim txt1 As String = enc.GetString(bin1)
       Dim txt2 As String = enc.GetString(bin1)
       list.Add(New String() {txt1, txt2})
      Loop
     End Using
     Return list
    End Function
記事No.86230 のレス /過去ログ147より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -