Blog/content/posts/2023/basic/gambas-save-to-file.md

75 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "✒️ Как записать строку в файл на Gambas"
date: 2023-03-26T17:23:51+03:00
draft: false
tags: [tutorial, basic, development]
---
В этом руководстве на примерах покажу
как записать данные в файл на
[Gambas 3](https://gambas.sourceforge.net/en/main.html).
## Подготовка
Начну с того, что я создам новый файл и открою его.
```basic
Dim TextFile As File
TextFile = Open Application.Path &/ "example.txt" For Write Append
```
Параметры `Write` и `Append` говорят компилятору,
что файл отрывается в режиме записи и дополнения.
_Из документации:_
```text
Stream = OPEN FileName [ FOR [ READ | INPUT ] [ WRITE | OUTPUT ] [ CREATE | APPEND ] [ WATCH ] ]
```
Подробнее про остальные параметры можно прочитать в документации
[lang/open](https://gambaswiki.org/wiki/lang/open).
## Способ №1 — оператор `Print`
Чтобы добавить данные в файл, можно воспользоваться оператором `Print`.
Необходимо лишь указать, что я пишу в файл, добавив `#TextFile`
в качестве первого аргумента.
```basic
Print #TextFile, "Example Text"
```
Обрати внимание, что добавлять символ конца строки не нужно.
Перенос строки добавиться автоматически, правда в формате `\r\n` (Windows),
как подсказывает мне мой текстовый редактор.
Даже если указать в параметр `EndOfLine` равным `gb.Unix`,
который отвечает за символ конца строки ничего не поменяется.
```basic
TextFile.ByteOrder = gb.LittleEndian
TextFile.EndOfLine = gb.Unix
```
## Способ №2 — Метод `Save`
Второй способ заключается в использовании метода `Save` объекта `File`.
```basic
File.Save(Application.Path &/ "example.txt", "Example Text" & "\n")
```
Но в таком случае, файл будет перезаписан,
несмотря на параметр `Append`, который был указан при его открытии.
## Способ №3 — Оператор `Write`
Третий способ, это использовать оператор `Write`.
```basic
Write #TextFile, "Example Text" & "\n" as String
```
Но в файл будут добавлены специальные Unicode символы,
убрать которые я не смог 🤷🏻‍♀️