---
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 символы,
убрать которые я не смог 🤷🏻‍♀️
