Операции с двоичными файлами

Двоичными, или бинарными, называют файлы, данные которых представляют собой машинные коды. Основные операции с такими кодами перечислены ниже.

Если открываемый для чтения файл не найден в текущем каталоге, то функция fopen осуществляет поиск файла по пути, указанном в MATLAB.

Параметр permission может принимать одно из следующих основных значений (другие см. в справочной системе):

  1. 'r' — открытие файла для чтения (по умолчанию);

  2. ' r+' — открытие файла для чтения и записи;

  3. 'w' — удаление содержимого существующего файла или создание нового и открытие его для записи;

  4. ' а' — создание и открытие нового файла или открытие существующего для записи с добавлением в конец файла.

Добавление к этой строке ' b' (подразумевается по умолчанию) предписывает системе открыть файл в двоичном режиме.

Добавление же вместо b к этой строке ' t', например ' rt', в операционных системах, которые имеют различие между текстовыми и двоичными файлами, предписывает системе открыть файл в текстовом режиме. Например, во всех версиях MATLAB для Windows/MS-DOS и VMS нельзя открыть текстовый файл без параметра ' rt'. При вводе файлов с использованием fopen в текстовом режиме удаляются все символы «возврат каретки» перед символом новой строки.

Определенные вызовы функций fread или fwrite могут отменить числовой формат, заданный при вызове функции fopen.

Команда fclose закрывает файл. Она имеет следующие варианты.

Пример открытия и закрытия файла:

» fid=fopen('c:\ex'.'а+') fid = 4

 » fclose(4)

ans =

0

Используются следующие параметры size:

Заполнение происходит по столбцам. Если элементов в файле мало, то матрица дополняется нулями. Если считывание достигает конца файла, не заполнив матрицу необходимого размера, то матрица дополняется нулями. Если происходит ошибка, чтение останавливается на последнем считанном значении. Параметр precision — строка, определяющая числовую точность считывания значений, она контролирует число считанных бит для каждого значения и интерпретирует эти биты как целое число, число с плавающей запятой или как символ

Примеры:

» fid = fopen('c:\prim','а+') 

fid =

» A=magic(7)

А =

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

» count = fwrite(j.A) 

count =

49

» status=fclose(3) 

status =

0

» fid 

 fopen('c:\prim'.'r') 

fid =

3

» [B,count] = fread(3.[7.7]) 

В=

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

count = 

49