Skriving av en tekstfil

Elm:
Skriving av en tekstfil

Hvordan:

Elm har ikke direkte filsystem-tilgang, men du kan bruke Elm til å forberede filinnhold som brukeren kan laste ned. Her er et eksempel:

module Main exposing (..)
import Browser
import Html exposing (Html, button, text)
import Html.Attributes exposing (download, href)
import Html.Events exposing (onClick)
import Url

main =
    Browser.sandbox { init = init, update = update, view = view }

type alias Model = String

init : Model
init =
    "Hei, dette er tekst som skal bli til en fil."

type Msg = Download

update : Msg -> Model -> Model
update _ model = model

view : Model -> Html Msg
view model =
    let
        encoded = Url.percentEncode model
        dataUrl = "data:text/plain;charset=utf-8," ++ encoded
    in
    button [ onClick Download, download "minfil.txt", href dataUrl ] [ text "Last ned filen" ]

Når du trykker “Last ned filen”, blir teksten i init nedlastet som minfil.txt.

Dypdykk

Elm er designet for frontend-webutvikling og har ikke innebygget filsystem-tilgang som server-språk. For å lagre filer må man bruke web-API-er, som i eksempelet over. Det er nyttig å bruke Url.percentEncode for å sørge for at tekstinnholdet er URL-kompatibelt. Alternativer, som å poste til en server, finnes, men er utenfor Elm sin direkte funksjon.

Se Også