Copyright (C) 2000-2012 |
GNU Info (guile.info)Line/DelimitedHandling Line Oriented and Delimited Text ========================================= [Line-oriented and delimited IO. Or should this be merged into the previous two sections?] Extended I/O procedures are available which read or write lines of text or read text delimited by a specified set of characters. Interfaces to `read'/`fread' and `write'/`fwrite' are also available, as `uniform-array-read!' and `uniform-array-write!', Note: Uniform Arrays. - procedure: read-line [port] [handle-delim] Return a line of text from PORT if specified, otherwise from the value returned by `(current-input-port)'. Under Unix, a line of text is terminated by the first end-of-line character or by end-of-file. If HANDLE-DELIM is specified, it should be one of the following symbols: `trim' Discard the terminating delimiter. This is the default, but it will be impossible to tell whether the read terminated with a delimiter or end-of-file. `concat' Append the terminating delimiter (if any) to the returned string. `peek' Push the terminating delimiter (if any) back on to the port. `split' Return a pair containing the string read from the port and the terminating delimiter or end-of-file object. NOTE: if the scsh module is loaded then multiple values are returned instead of a pair. - procedure: read-line! buf [port] Read a line of text into the supplied string BUF and return the number of characters added to BUF. If BUF is filled, then `#f' is returned. Read from PORT if specified, otherwise from the value returned by `(current-input-port)'. - procedure: read-delimited delims [port] [handle-delim] Read text until one of the characters in the string DELIMS is found or end-of-file is reached. Read from PORT if supplied, otherwise from the value returned by `(current-input-port)'. HANDLE-DELIM takes the same values as described for `read-line'. NOTE: if the scsh module is loaded then DELIMS must be an scsh char-set, not a string. - procedure: read-delimited! delims buf [port] [handle-delim] [start] [end] Read text into the supplied string BUF and return the number of characters added to BUF (subject to HANDLE-DELIM, which takes the same values specified for `read-line'. If BUF is filled, `#f' is returned for both the number of characters read and the delimiter. Also terminates if one of the characters in the string DELIMS is found or end-of-file is reached. Read from PORT if supplied, otherwise from the value returned by `(current-input-port)'. NOTE: if the scsh module is loaded then DELIMS must be an scsh char-set, not a string. - primitive: write-line obj [port] Display OBJ and a newline character to PORT. If PORT is not specified, `(current-output-port)' is used. This function is equivalent to: (display obj [port]) (newline [port]) Some of the abovementioned I/O functions rely on the following C primitives. These will mainly be of interest to people hacking Guile internals. - primitive: %read-delimited! delims buf gobble [port [start [end]]] Read characters from PORT into BUF until one of the characters in the DELIMS string is encountered. If GOBBLE? is true, store the delimiter character in BUF as well; otherwise, discard it. If PORT is not specified, use the value of `(current-input-port)'. If START or END are specified, store data only into the substring of BUF bounded by START and END (which default to the beginning and end of the buffer, respectively). Return a pair consisting of the delimiter that terminated the string and the number of characters read. If reading stopped at the end of file, the delimiter returned is the EOF-OBJECT; if the buffer was filled without encountering a delimiter, this value is #F. - primitive: %read-line [port] Read a newline-terminated line from PORT, allocating storage as necessary. The newline terminator (if any) is removed from the string, and a pair consisting of the line and its delimiter is returned. The delimiter may be either a newline or the EOF-OBJECT; if `%read-line' is called at the end of file, it returns the pair `(#<eof> . #<eof>)'. automatically generated by info2www version 1.2.2.9 |