Rust Grundlagen auf dem PC · Teil 21TutorialEinsteiger

Rust

Rust Grundlagen 21: Dateien und CSV

Messwerte dauerhaft speichern. Verständliche Rust-Lektion mit Beispielen, Übung und Musterlösung.

Kapitel: Praktische Anwendungen

Veröffentlicht am

Teil 21: Dateien und CSV

Lernziel: Messwerte dauerhaft speichern.

Voraussetzungen: Die vorherigen Lektionen, insbesondere Teil 20.

Worum geht es?

Über std::fs und std::io lassen sich einfache Textdateien lesen und schreiben. Für den Einstieg genügt ein CSV-Format mit festen Spalten.

Schritt für Schritt

use std::fs;
use std::io;

fn main() -> io::Result<()> {
    let daten = "nummer;temperatur
1;205.0
2;210.5
3;208.0
";
    fs::write("messwerte.csv", daten)?;
    let inhalt = fs::read_to_string("messwerte.csv")?;
    println!("{inhalt}");
    Ok(())
}

Die Datei entsteht im aktuellen Arbeitsverzeichnis, beim üblichen cargo run also im Projektordner.

Einfaches Einlesen

let inhalt = std::fs::read_to_string("messwerte.csv")?;
for zeile in inhalt.lines().skip(1) {
    let spalten: Vec<&str> = zeile.split(';').collect();
    if spalten.len() == 2 {
        println!("Messung {}: {} °C", spalten[0], spalten[1]);
    }
}

Dies ist ein didaktisch einfacher Parser. Er behandelt keine Anführungszeichen, Trennzeichen innerhalb von Feldern oder komplexe CSV-Sonderfälle. Für reale CSV-Dateien verwende später die csv-Crate.

Selbst ausprobieren

Speichere fünf Messwerte im Format nummer;temperatur und lies die Datei anschließend wieder ein.

Musterlösung anzeigen
use std::{fs, io};
fn main() -> io::Result<()> {
    let werte = [200.0, 202.5, 205.0, 207.0, 210.0];
    let mut csv = String::from("nummer;temperatur
");
    for (i, t) in werte.iter().enumerate() {
        csv.push_str(&format!("{};{t}
", i + 1));
    }
    fs::write("messwerte.csv", csv)?;
    println!("{}", fs::read_to_string("messwerte.csv")?);
    Ok(())
}

Das solltest du mitnehmen

  • Messwerte dauerhaft speichern.
  • Nutze cargo run für das Ausführen und cargo check für eine schnelle Fehlerprüfung (ab Teil 4).
  • Experimentiere mit veränderten Werten und beobachte die Compilermeldungen.

Weiterführende Quellen


← Vorheriger Teil | Kursübersicht | Nächster Teil →