Файл calc.txt в корне Блэкбокса
## Код:
```
Тут какой то текст:

#3.141592653589793
#3.141592653589793

тут будет результат сложения двух действительных чисел:
#
конец файла
```


Пример работы с файлом, применяя только модули Files и Strings.

## Код:
```
MODULE ObxFilesDemo;

   IMPORT Files, Strings;

   PROCEDURE OpenReadModifyAndSaveBack* (path, name: ARRAY OF CHAR);
   VAR
      file, newFile: Files.File; r: Files.Reader; w: Files.Writer;
      b: BYTE; str: ARRAY 64 OF CHAR; pos, res: INTEGER;
      r1, r2, r3: REAL;
   BEGIN
      file := Files.dir.Old(Files.dir.This(path), name$, Files.shared);
      ASSERT(file # NIL, 21);
      r := file.NewReader(NIL);
      
      r.ReadByte(b);
      WHILE (~r.eof) & (b # ORD("#")) DO
         r.ReadByte(b);
      END;
      ASSERT(~r.eof, 22);
      r.ReadByte(b);
      pos := 0;
      WHILE (~r.eof) & ((b = ORD(".")) OR (b >= ORD("0")) & (b <= ORD("9"))) DO
         str[pos] := CHR(b);
         INC(pos);
         r.ReadByte(b);
      END;
      ASSERT(~r.eof, 23);
      str[pos] := 0X;
      Strings.StringToReal(str, r1, res);
      ASSERT(res = 0, 24);
      
      r.ReadByte(b);
      WHILE (~r.eof) & (b # ORD("#")) DO
         r.ReadByte(b);
      END;
      ASSERT(~r.eof, 25);
      r.ReadByte(b);
      pos := 0;
      WHILE (~r.eof) & ((b = ORD(".")) OR (b >= ORD("0")) & (b <= ORD("9"))) DO
         str[pos] := CHR(b);
         INC(pos);
         r.ReadByte(b);
      END;
      ASSERT(~r.eof, 26);
      str[pos] := 0X;
      Strings.StringToReal(str, r2, res);
      ASSERT(res = 0, 27);
      
      r3 := r1 + r2;
      
      Strings.RealToString(r3, str);
      
      r.ReadByte(b);
      WHILE (~r.eof) & (b # ORD("#")) DO
         r.ReadByte(b);
      END;
      ASSERT(~r.eof, 28);
      
      newFile := Files.dir.New(Files.dir.This(path), Files.dontAsk);
      res := r.Pos();
      r.SetPos(0);
      w := newFile.NewWriter(NIL);
      FOR pos := 0 TO res - 1 DO
         r.ReadByte(b);
         w.WriteByte(b);
      END;
      FOR pos := 0 TO LEN(str$) - 1 DO
         w.WriteByte(SHORT(SHORT(ORD(str[pos]))))
      END;
      r.ReadByte(b);
      WHILE (~r.eof) DO
         w.WriteByte(b);
         r.ReadByte(b);
      END;
      
      newFile.Register(name$, "", Files.dontAsk, res);
      ASSERT(res = 0, 29);
      
      file.Close;
      newFile.Close;
      
   END OpenReadModifyAndSaveBack;


END ObxFilesDemo.

"ObxFilesDemo.OpenReadModifyAndSaveBack('', 'calc.txt')"
```
