Elm:
Écriture d'un fichier texte

How to:

Elm ne possède pas de système de fichiers intégré, car il est conçu pour la sécurité dans des applications web. Pour écrire un fichier, on interagit souvent avec une API backend ou on génère un téléchargement côté client. Voici un exemple de génération d’un fichier texte à télécharger via Elm :

module Main exposing (..)

import Browser
import Html exposing (a, text)
import Html.Attributes exposing (href, download)

main =
    Html.beginnerProgram { model = model, view = view, update = update }

model = "Données à enregistrer dans le fichier texte."

update _ model = model

view model =
    let
        encodedData =
            "data:text/plain;charset=utf-8," ++ (encodeURIComponent model)
    in
    a [ href encodedData, download "Data.txt" ] [ text "Télécharger le fichier" ]

encodeURIComponent : String -> String
encodeURIComponent =
    Js.encodeURIComponent

Lorsque vous cliquez sur le lien, “Data.txt” est téléchargé avec le texte “Données à enregistrer dans le fichier texte.”

Deep Dive

Historiquement, Elm avait des moyens restreints de manipulation de fichiers côté client et aucun du côté serveur, car le langage vise la fiabilité et la sécurité dans les applications web. Les alternatives incluent l’utilisation de JavaScript via des Ports ou de WebAssembly pour la communication entre Elm et les systèmes de fichiers. Ces méthodes offrent plus de flexibilité mais exigent une attention à la sécurité.

See Also