zoukankan      html  css  js  c++  java
  • 【Excel】读取固定长文本

    '*******************************************************************************
    '   固定長形式テキストファイルを読み込むサンプル(改行なし)
    '
    '   作成者:井上治  URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
    '*******************************************************************************
    ' [参照設定]
    '   ・Microsoft Scripting Runtime
    '*******************************************************************************
    Option Explicit
    ' レコードの項目定義
    Private Type typREC
        CODE As String * 5              ' コード
        MAKER As String * 10            ' メーカー
        HINMEI As String * 15           ' 品名
        SURYO As String * 4             ' 数量
        TANKA As String * 6             ' 単価
        KINGAKU As String * 8           ' 金額
    '    CRLF As String * 2              ' 改行コード分のダミー項目
    End Type
     
    '*******************************************************************************
    ' 固定長形式テキストファイルを読み込むサンプル(改行なし)
    ' 参照設定:(未使用)
    '*******************************************************************************
    Sub READ_FixLngFile2()
        Const cnsFILENAME = "SAMPLE2.dat"
        Const cnsLNGS = 48              ' レコード長
        Dim strFileName As String       ' ファイル名
        Dim intFF As Integer            ' FreeFile値
        Dim lngLOF As Long              ' LOF値
        Dim lngPOS As Long              ' 読み込み位置
        Dim GYO As Long                 ' 収容するセルの行
        Dim tmpREC As typREC            ' レコード定義
        Dim strREC As String            ' レコードを収容する変数
     
        ' 指定ファイルをOPEN(入力モード)
        strFileName = ThisWorkbook.Path & cnsFILENAME
        intFF = FreeFile
        Open strFileName For Binary As #intFF
        lngLOF = LOF(intFF)             ' LOF値(ファイルサイズ)取得
        lngPOS = 1                      ' 読み込み位置
        ' 2行目から開始
        Rows("2:65536").ClearContents
        GYO = 2
        Do Until lngPOS > lngLOF
            ' レコードの読み込み
            Get #intFF, lngPOS, tmpREC
            ' 1レコード分のセルへのセット
            '-----------------------------------------------------------------------
            ' A列(コード)は5バイトの文字列処理
            Cells(GYO, 1).Value = Trim(tmpREC.CODE)
            ' B列(メーカー)は10バイトの文字列処理
            Cells(GYO, 2).Value = Trim(tmpREC.MAKER)
            ' C列(品名)は15バイトの文字列処理
            Cells(GYO, 3).Value = Trim(tmpREC.HINMEI)
            ' D列(数量)は4バイトの数値処理
            Cells(GYO, 4).Value = CCur(tmpREC.SURYO)
            ' E列(単価)は6バイトの数値処理
            Cells(GYO, 5).Value = CCur(tmpREC.TANKA)
            ' F列(金額)は8バイトの数値処理
            Cells(GYO, 6).Value = CCur(tmpREC.KINGAKU)
            '-----------------------------------------------------------------------
            ' 読み込み位置を加算
            lngPOS = lngPOS + cnsLNGS
            ' 行を加算
            GYO = GYO + 1
        Loop
        ' 指定ファイルをCLOSE
        Close #intFF
    End Sub
     
    '-----------------------------<< End of Source >>-------------------------------
  • 相关阅读:
    DOM
    笔试题
    小案例
    前端基础面试题
    2048小游戏
    JS原型与构造函数
    String字符串和正则表达式
    数组
    MySQL_PHP学习笔记_2015_0906_使用PHP模板
    MySQL_PHP学习笔记_2015_0614_PHP传参总结_URL传参_表单传参
  • 原文地址:https://www.cnblogs.com/sekihin/p/10571031.html
Copyright © 2011-2022 走看看