From 1331bb299c081c55e73820cf4841e439cf685285 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Sun, 26 Mar 2023 17:44:58 +0300 Subject: [PATCH] gambas: save to file --- .../posts/2023/basic/gambas-save-to-file.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 content/posts/2023/basic/gambas-save-to-file.md diff --git a/content/posts/2023/basic/gambas-save-to-file.md b/content/posts/2023/basic/gambas-save-to-file.md new file mode 100644 index 0000000..7d91954 --- /dev/null +++ b/content/posts/2023/basic/gambas-save-to-file.md @@ -0,0 +1,74 @@ +--- +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 символы, +убрать которые я не смог 🤷🏻‍♀️