From f036a33bca2b358608d2e26b4fc2723bbf6eb91d Mon Sep 17 00:00:00 2001 From: Waldir Leoncio Date: Fri, 31 Jul 2020 09:20:44 +0200 Subject: [PATCH] Initial idea for fgetl --- R/fgetl.R | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 R/fgetl.R diff --git a/R/fgetl.R b/R/fgetl.R new file mode 100644 index 0000000..5e4eec6 --- /dev/null +++ b/R/fgetl.R @@ -0,0 +1,33 @@ +#' @title Read line from file, removing newline characters +#' @description Equivalent function to its homonymous Matlab equivalent. +#' @param file file to be read +#' @return If the file is nonempty, then fgetl returns tline as a character vector. If the file is empty and contains only the end-of-file marker, then fgetl returns tline as a numeric value -1. +#' @author Waldir Leoncio +#' @export +fgetl <- function(file) { + # ========================================================================== + # Validation + # ========================================================================== + if (file == "") return(-1) + # ========================================================================== + # Determine next line to be read + # ========================================================================== + if (is.null(attr(file, "last_read_line"))) { + attr(file, "last_read_line") <- 1 + } else { + attr(file, "last_read_line") <- attr(file, "last_read_line") + 1 + } + # ========================================================================== + # Returning next line + # ========================================================================== + out <- file[attr(file, "last_read_line")] + return(out) +} + +#' @title Open file +#' @description Open a text file +#' @param filename Path and name of file to be open +#' @return The same as `readLines(filename)` +#' @author Waldir Leoncio +#' @export +fopen <- function(filename) readLines(filename) \ No newline at end of file