Created by [CecilWesterhof]. I often need a certain line from a file. (Mostly the first.) Because of that I wrote the following two proc's: ====== proc getLine {fileName {no 1}} { if {${no} < 1} { error "The linenumber cannot be lower as 1" } set linesToGo ${no} set fd [open ${fileName} RDONLY] while {${linesToGo}} { if {-1 == [gets ${fd} line]} { error "Line ${no} does not exist for ${fileName}" } incr linesToGo -1 } close ${fd} return ${line} } proc getLineAsList {fileName {no 1}} { regexp -inline -all {\S+} [getLine ${fileName} ${no}] } ====== The first just gets the line and returns it as a string. Sometimes you need it as a list. For this I wrote the second one that uses the first. As always: comments, tips and questions are appreciated. [KPV] if the file is small, you can just do: ====== proc GetLineAt {fname lineno} { set fin [open $fname r] set lines [split [read $fin] \n] close $fin return [lindex $lines $lineno-1] } ====== <>Enter Category Here