Du ønsker å digitalisere din dagbokskriving, og har funnet ut at du vil lage et Matlab-program for å la deg skrive inn hva som helst og som lagrer det du skriver i en fil. Du vil også at programmet automatisk skal markere hvilken dag hver del av dagboka er skrevet. For å gjøre dette, bestemmer du deg for å lage funksjonen skriv_dagbok(filnavn), som

  • Skriver dagens dato til filen, omringet av to linjer med bindestreker slik at det blir et tydelig skille i filen.
  • Skriver alt brukeren skriver inn til dagboka.

Det er viktig at funksjonen ikke sletter det som står i dagboka fra før, men legger det du skriver til slutt i filen. Hvis brukeren skriver inn en tom linje, skal funksjonen avslutte.

Tips: bruk date()-funksjonen for å få dagens dato som en tekststreng.

Videoforklaring (13:40) 

Del 1 (8:14)Del 2 (5:26)
Oppgaveintroduksjon, og kode for å håndtere skriving av noe til fil.Kode for å produsere teksten som skal skrives til filen.

Løsningsforslag

skriv_dagbok.m
function skriv_dagbok(filnavn)
    % 1. Åpne filen
    fd = fopen(filnavn, 'a');
    if fd == -1
        error('Kunne ikke åpne filen %s\n', filnavn);
    end
    
    % 2. Bruke filen
    
    fprintf(fd, '----------------------------------------\n');
    fprintf(fd, '%s\n', date());
    fprintf(fd, '----------------------------------------\n');
    linje = input('', 's');
    while ~isempty(linje)
        fprintf(fd, '%s\n', linje);
        linje = input('', 's');
    end
    
    % 3. Lukke filen
    status = fclose(fd);
    if status == -1
        error('Kunne ikke lukke filen %s\n', filnavn);
    end
end 
  • No labels