Hopp til innhold
NorscodeNorscode

std.fil

ReferanseAv Norscode-prosjektet

std.fil er det enkleste laget mellom programmet ditt og filsystemet: sjekk om en fil finnes, les og skriv tekst, eller les og skriv rå bytes — med disk-kapabilitet.

std.fil er det enkleste laget mellom programmet ditt og filsystemet. Du kan sjekke om en fil finnes, lese hele innholdet som tekst, skrive eller legge til, og for binært innhold lese og skrive rå bytes.

Alle disse operasjonene krever de riktige disk-kapabilitetene — disk.read for å lese, disk.write for å skrive — avgrenset til de mappene du oppgir når du starter programmet. Det er med vilje: et program uten dem kan ikke røre filsystemet ved et uhell, og en avhengighet du ikke har lest kan ikke lese filer den aldri fikk tilgang til.

Når bruker du den

Bruk std.fil til å lese konfigurasjon, lagre resultater eller behandle filer en bruker har lagt igjen. Tekstfunksjonene dekker det vanlige; byte-funksjonene tar seg av bilder og annet binært. Alt krever de riktige disk-kapabilitetene.

Slik kommer du i gang

bruk std.fil som fil

funksjon start() -> heiltall {
    hvis fil.finnes("notat.txt") {
        skriv(fil.les("notat.txt"))
    } ellers {
        fil.skriv_fil("notat.txt", "Første linje\n")
    }
    fil.append("notat.txt", "En linje til\n")
    returner 0
}

finnes lar deg sjekke før du leser, og append legger til uten å overskrive. Husk disk.read/disk.write når du starter programmet.

Funksjonene

Tenk på funksjonene i tre lag: sjekke (finnes, status), tekst (les, les_fil, skriv_fil, append) og bytes for binært innhold (les_bytes, les_byte_liste, skriv_bytes). slett_fil fjerner en fil.

  • finnes(sti: tekst) -> bool — Sann hvis fila finnes på stien.
  • skriv_fil(sti: tekst, innhald: tekst) -> heltall — Skriver tekst til fila og overskriver eventuelt tidligere innhold.
  • les_fil(sti: tekst) -> tekst — Leser og gir hele innholdet i fila som tekst.
  • les(sti: tekst) -> tekst — Leser hele fila som tekst (kortform av les_fil).
  • append(sti: tekst, innhald: tekst) -> heltall — Legger tekst til på slutten av fila uten å overskrive.
  • skriv_bytes(sti: tekst, data) -> heltall — Skriver binære data (en byte-buffer) til fila.
  • les_bytes(sti: tekst) — Leser fila som binære data.
  • les_byte_liste(sti: tekst) -> liste_heltall — Leser fila som en liste_heltall med byte-verdier.
  • slett_fil(sti: tekst) -> bool — Sletter fila og gir sann hvis det lyktes.
  • status(sti: tekst) -> ordbok_tekst — Gir metadata om fila, som om den finnes og hvor stor den er.

Godt å vite

  • Uten disk.read/disk.write-kapabilitet feiler operasjonene med manglar capability — det er ikke en feil i koden, men kjøretiden som gjør jobben sin.
  • skriv_fil overskriver; vil du beholde det som er der, bruk append.
  • For bilder og annet binært, bruk les_bytes/skriv_bytes — tekstfunksjonene er ikke trygge på rå bytes.

std.fil er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.

Les også

Tilbake til oversikten