eof(3tcl) Tcl Built-In Commands eof(3tcl)__________________________________________________________________________________________________________________________________________________NAME
eof - Check for end of file condition on channel
SYNOPSIS
eof channelId
_________________________________________________________________DESCRIPTION
Returns 1 if an end of file condition occurred during the most recent input operation on channelId (such as gets), 0 otherwise.
ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, stdout, or stderr), the return value from an
invocation of open or socket, or the result of a channel creation command provided by a Tcl extension.
EXAMPLES
Read and print out the contents of a file line-by-line:
set f [open somefile.txt]
while {1} {
set line [gets $f]
if {[eof $f]} {
close $f
break
}
puts "Read line: $line"
}
Read and print out the contents of a file by fixed-size records:
set f [open somefile.dat]
fconfigure $f -translation binary
set recordSize 40
while {1} {
set record [read $f $recordSize]
if {[eof $f]} {
close $f
break
}
puts "Read record: $record"
}
SEE ALSO file(3tcl), open(3tcl), close(3tcl), fblocked(3tcl), Tcl_StandardChannels(3tcl)KEYWORDS
channel, end of file
Tcl 7.5 eof(3tcl)
Check Out this Related Man Page
gets(3tcl) Tcl Built-In Commands gets(3tcl)__________________________________________________________________________________________________________________________________________________NAME
gets - Read a line from a channel
SYNOPSIS
gets channelId ?varName?
_________________________________________________________________DESCRIPTION
This command reads the next line from channelId, returns everything in the line up to (but not including) the end-of-line character(s), and
discards the end-of-line character(s).
ChannelId must be an identifier for an open channel such as the Tcl standard input channel (stdin), the return value from an invocation of
open or socket, or the result of a channel creation command provided by a Tcl extension. The channel must have been opened for input.
If varName is omitted the line is returned as the result of the command. If varName is specified then the line is placed in the variable
by that name and the return value is a count of the number of characters returned.
If end of file occurs while scanning for an end of line, the command returns whatever input is available up to the end of file. If chan-
nelId is in nonblocking mode and there is not a full line of input available, the command returns an empty string and does not consume any
input. If varName is specified and an empty string is returned in varName because of end-of-file or because of insufficient data in non-
blocking mode, then the return count is -1. Note that if varName is not specified then the end-of-file and no-full-line-available cases
can produce the same results as if there were an input line consisting only of the end-of-line character(s). The eof and fblocked commands
can be used to distinguish these three cases.
EXAMPLE
This example reads a file one line at a time and prints it out with the current line number attached to the start of each line.
set chan [open "some.file.txt"]
set lineNumber 0
while {[gets $chan line] >= 0} {
puts "[incr lineNumber]: $line"
}
close $chan
SEE ALSO file(3tcl), eof(3tcl), fblocked(3tcl), Tcl_StandardChannels(3tcl)KEYWORDS
blocking, channel, end of file, end of line, line, nonblocking, read
Tcl 7.5 gets(3tcl)
I am trying to open a file and check a record. The file has 543267 records and I want to check the record 514455. I am trying to open in vi and go to that line
:514455 but i get the error not enough lines in buffer
How should i overcome this? Please help. (6 Replies)
Hi,
If i have a file with xml format, i would like to remove duplicated records and save to a new file. Is it possible...to write script to do it? (8 Replies)
Ok, I recently purchased a lapto and the harddrive crashed. I bought a new one and now half of the functions on it wont work. I cant watch DVD's and non eof my Fn keys work. Any suggestions? Also wanting to learn how to program, anybody know a good way to go about it/learn computer languages? (2 Replies)
Hi,
I am newbie and am just trying to connect to oracle from shell script ,,,but I am getting the following error
./prog.sh: line 20: syntax error: unexpected end of file
The scripts is :
#!/bin/bash
O=$IFS; IFS=",";
while read a b c d
do
echo $c
... (6 Replies)
Hello all,
Linux - Is there any way of creating a new file and determining its record size upon creation?
open() and creat() do not refer to record size.
Thanks... (2 Replies)
Hello,
I"m using the following c++ program on a Linux Redhat System, where it works fine.
But as soon as I move on a SunOS there will be no end of reading?
#include <fstream>
#include <iostream>
ifstream file("test");
string buffer;
int i=0;
if... (3 Replies)
Hi ,
I have a table of 5 records. I am using FOR condition in this table. Using FOR , I want to copy those particular record into someother file which satisfies the condition. How to use 'cp' command in this situation in UNIX
For Ex
No Prod Price Bar Code
1 Colgate 23 34564 col
2... (5 Replies)
Hello everybody,
I isolated an issue: please try the following script (under AIX)
#!/usr/bin/ksh93
echo "Before Perl: \c"
read line
echo "|$line|"
perl -e 'print "Perl invocation";'
echo
echo "After Perl: \c"
read line
echo "|$line|"
On the first input, type Ctrl-D. It works... (13 Replies)
does anyone have an awk one-liner to:
print the first line, the second line, then every Nth line, and the last line of a file.
Thanks,
Kenny. (5 Replies)
HI,
I have a text file in which I have removed all new lines as I would like to introduce a new line at the end of each record in the file. There is no common end line for all the records. A new record will start by *RECORD*. So I want to introduce a new line before this line *RECORD*. So Can... (2 Replies)
Need to add end of line character to last record in a fixed width file.
When i take the record length of each line, for all the records it gives example like 200 except the last line as 199.
Due to this my other script fails.
Please help me on this. (4 Replies)
need help to print the below ..
Content of file looks like below ..
SCHEMA1. TABLE1
SCHEMA2. TABLE2
SCHEMA3. TABLE3
read lines from above file and print o/p as below
print output like read 1st line and print
SELECT SCHEMA1.TABLE1
print output like read 2st line and print ... (4 Replies)