Ex 8.8

Läs in decimaltal från fil, avrunda sedan till närmaste heltal och skriv resultatet till en ny fil.

function ex_8_8
    % kontrollvariabel
    skrivut = 0;

    % Läs in datan (om filen finns)
    fil = input('Namnet på filen: ','s');
    if exist(fil,'file')
        [data skrivut] = readfile(fil);
    else
        disp('Filen finns inte!');
        return;
    end

    % Skriv den avrundade datan till en fil
    while skrivut
        utfil = input('Namnet på utdata filen: ','s');
	if isempty(utfil)
		disp('Avslutar');
		return;
	elseif exist(utfil,'file')
            svar = input('Filen finns redan, vill du skriva över? [j/n]','s');
            if svar == 'j'
                skrivut = writefile(utfil,data);
            end
        else
            skrivut = writefile(utfil,data);
        end
    end
end

function [data,skrivut] = readfile(fil)
    [fid,msg] = fopen(fil,'rt');
    if fid < 0
        disp(['Problem att öppna filen: ',msg]);
    else
        data = fscanf(fid,'%f');
        fclose(fid);

        data = round(data);
        skrivut = 1;
    end
end

function skrivut = writefile(fil,data)
    [fid,msg] = fopen(fil,'wt');
    if fid < 0
        disp(['Problem att öppna filen: ',msg]);
    else
        fprintf(fid,'%d\n',data);
        fclose(fid);
        skrivut = 0;
    end
end