代码之家  ›  专栏  ›  技术社区  ›  Rancho

Tcl\U SetObjLength:请求的负长度错误

  •  0
  • Rancho  · 技术社区  · 7 年前

    我有一个大约4200万行的文件,我正试图在TCL中读取和解析它。但是,我在打印D1后立即收到以下错误消息。有没有其他方法可以读取大文件?

    proc test {} {
            set rpt "<file_name>"
            puts "D0"
            set lines [open $rpt r]
            puts "D1"
            set Data [read $lines]
            puts "D2"
            close $lines
    }
    

    输出错误:

    D0
    D1
    Tcl_SetObjLength: negative length requested: -2147483646 (integer overflow?)
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Dinesh    7 年前
    set fp [open inputfile r]
    # Read one line at a time
    while {[gets $fp line]!=-1} {
        puts $line
    }
    close $fp