Инструменты пользователя

Инструменты сайта


cp:obx-simple-file-write

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
cp:obx-simple-file-write [2019/01/05 20:02]
иван_денисов создано
cp:obx-simple-file-write [2021/06/24 14:53] (текущий)
iadenisov
Строка 1: Строка 1:
-====== Запись числа в файл ======+====== Запись действительного числа в файл ======
  
 +[[:blackbox|Блэкбокс]] предоставляет высокоуровневые абстракции для работы с текстами, однако иногда необходима возможность прямой манипуляции с текстовыми файлами в формате ASCII. Полный пример реализации минимально необходимых функций для работы с ASCII вы найдете в модуле **Obx/Mod/Ascii.odc**.
 +
 +Ниже представлен пример записи действительных чисел в файл низкоуровневом режиме работы с байтами через модуль Files.
  
 <code> <code>
Строка 7: Строка 10:
 IMPORT Files, Strings, Math; IMPORT Files, Strings, Math;
  
-PROCEDURE WriteReal(wr: Files.Writer; r: REAL);+PROCEDURE WriteReal (wr: Files.Writer; r: REAL);
 VAR str: ARRAY 64 OF CHAR; i: INTEGER; VAR str: ARRAY 64 OF CHAR; i: INTEGER;
-BEGIN +BEGIN
  Strings.RealToString(r, str);  Strings.RealToString(r, str);
- i:=0+ FOR i := 0 TO LEN(str$- 1 DO 
- WHILE (i < LEN(str)) & (str[i] # 0X) DO + wr.WriteByte(SHORT(SHORT(ORD(str[i]))))
- wr.WriteByte(SHORT(SHORT(ORD(str[i])))); +
- INC(i)+
  END  END
 END WriteReal; END WriteReal;
  
-PROCEDURE WriteLn(wr: Files.Writer);+PROCEDURE WriteLn (wr: Files.Writer);
 BEGIN  BEGIN 
- wr.WriteByte(0DH); + wr.WriteByte(0DH); wr.WriteByte(0AH)
- wr.WriteByte(0AH);+
 END WriteLn; END WriteLn;
  
Строка 31: Строка 31:
  WriteReal(wr, Math.Pi());  WriteReal(wr, Math.Pi());
  WriteLn(wr);  WriteLn(wr);
- WriteReal(wr, Math.Pi());+ WriteReal(wr, Math.Pi() / 2);
  WriteLn(wr);  WriteLn(wr);
  f.Register("demo", "txt", Files.dontAsk, res);  f.Register("demo", "txt", Files.dontAsk, res);
cp/obx-simple-file-write.1546707742.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)