Non sono sicuro di capire bene cosa devi fare. Ma supponendo che
- il collegamento si riferisce ad un file esistente sul disco
- è sicuramente bisogno di leggere dal file
- si potrebbe voler scrivere sul file
Poi si potrebbe fare qualcosa di simile se si dovesse forzare la codifica UTF-8:
# Hypothetical connection used by the user (file must exist on dist, hence
# the "w" here
con <- file(tempfile(), open = "w", encoding = "UTF-8")
# recup the attributes of the existing connection
con.attr <- summary(con)
# build a list of parameters for a new connection that would replace
# the original one
newcon.attr <- list()
newcon.attr["description"] <- con.attr$description
newcon.attr["open"] <- paste0("r", ifelse(con.attr$'can write'=='yes', "+", ""))
newcon.attr["encoding"] <- "UTF-8"
# close the original connection, and create the new one
close(con)
newcon <- do.call(what = file, args = newcon.attr)
# Check its attributes
summary(newcon)
# $description
# [1] "C:\\Users\\...\\Temp\\Rtmpo9ykjo\\file54744993321b"
#
# $class
# [1] "file"
#
# $mode
# [1] "r+"
#
# $text
# [1] "text"
#
# $opened
# [1] "opened"
#
# $`can read`
# [1] "yes"
#
# $`can write`
# [1] "yes"
Per verificare se il contenuto precedente è stato codificato utilizzando UTF-8 o no è tutta un'altra storia, quindi potrebbe essere utile o meno nel tuo caso.
fonte
2015-03-07 08:42:05
Per trovare più facilmente una risposta, cosa vorresti sapere per quale proprietà? Voglio dire, lo sapevi quando hai aperto il file, stai usando quelle informazioni in una parte del codice che non è più in grado di ricordare quella proprietà? Il codice deve funzionare per altri tipi di "connessione" "oggetti"? – MrFlick
Ho bisogno di questo all'interno di una funzione in cui l'utente passa un oggetto di connessione come argomento. – Jeroen
Forse provare a modificare ['do_sumconnection'] (https://github.com/wch/r-source/blob/trunk/src/main/connections.c#L4910)? –