Wie würde ich Racket verwenden, um eine Datei zu erstellen, in der vom Benutzer eingegebene Daten gespeichert oder bearbeitet werden können, z. B. eine hohe Punktzahl. Ich habe einige Dokumente gelesen und keine klare Antwort gefunden.Dateien über Racket erstellen
Antwort
Es gibt einige einfache Funktionen zum Lesen und Schreiben einer Datei in der 2htdp/batch-io
-Bibliothek: http://docs.racket-lang.org/teachpack/2htdpbatch-io.html. Sie sind in etwas eingeschränkt, dass sie eine Datei nur im selben Verzeichnis wie das Programm zugreifen selbst, aber man kann so etwas tun:
(require 2htdp/batch-io)
(write-file "highscore.txt" "Alice 25\nBob 40\n")
zum Schreiben von Daten in eine Datei (die \ n bedeutet ein Newline-Zeichen), und dann
(read-lines "highscore.txt")
, um die Zeilen der Datei als eine Liste der Zeichenfolgen zurück zu erhalten.
Die Racket Guide hat ein Kapitel über Eingang und Ausgang. Die first section erklärt das Lesen und Schreiben von Dateien mit Beispielen. Es sagt
Dateien: Die
open-output-file
Funktion eine Datei zum Schreiben öffnet, undopen-input-file
öffnet eine Datei zum Lesen.
Examples:
> (define out (open-output-file "data"))
> (display "hello" out)
> (close-output-port out)
> (define in (open-input-file "data"))
> (read-line in)
"hello"
> (close-input-port in)
Wenn eine Datei bereits vorhanden ist, dann wirft
open-output-file
eine Ausnahme von Standard. Liefern Sie eine Option wie#:exists 'truncate
oder#:exists 'update
neu zu schreiben oder aktualisieren, um die Datei:
und so weiter.