QB64 – Arquivos de texto

QB64

QB64 é uma moderna e estendida linguagem de programação BASIC que mantém a compatibilidade com QBasic/QuickBASIC 4.5 e compila binários nativos para Windows, Linux e macOS.

Design-time

  • Console
Dim As Integer escolha
Dim As String arquivo
Dim Shared As String entrada
declare sub escrever(as string)
declare sub ler(as string)

Input "Nome do arquivo: ", arquivo
Print "1 - Escrever"
Print "2 - Ler"
Input "Escolha uma alternativa (1 / 2): ", escolha
If escolha = 1 Then escrever (arquivo)
If escolha = 2 Then ler (arquivo)

Sub escrever (nome As String)
    Open nome For Output As #1
    Do
        Input entrada
        If entrada = "" Then Exit Do
        Print #1, entrada
    Loop
    Close #1
End Sub

Sub ler (nome As String)
    Open nome For Input As #1
    Do
        Line Input #1, entrada
        Print entrada
        If EOF(1) Then Exit Do
    Loop
    Close #1
End Sub
  • GUI – Interface Gráfica do Usuário
Dim Shared ArquivoTextoFRM As Long
Dim Shared ArquivoMenu As Long
Dim Shared EditarMenu As Long
Dim Shared FormatarMenu As Long
Dim Shared AjudaMenu As Long
Dim Shared ArquivoMenuAbrir As Long
Dim Shared ArquivoMenuSalvar As Long
Dim Shared Separador As Long
Dim Shared ArquivoMenuSair As Long
Dim Shared NomeDoArquivoLB As Long
Dim Shared NomeDoArquivoTB As Long
Dim Shared TextoTB As Long
Dim Shared nome As String
Dim Shared entrada As String
': This program uses
': InForm - GUI library for QB64 - v1.3
': Fellippe Heitor, 2016-2021 - fellippe@qb64.org - @fellippeheitor
': https://github.com/FellippeHeitor/InForm
'-----------------------------------------------------------
': Controls' IDs: ------------------------------------------------------------------
': External modules: ---------------------------------------------------------------
'$INCLUDE:'InForm\InForm.bi'
'$INCLUDE:'InForm\xp.uitheme'
'$INCLUDE:'txtform1.frm'
': Event procedures: ---------------------------------------------------------------
Sub __UI_Click (id As Long)
    Select Case id
        Case ArquivoTextoFRM
        Case ArquivoMenu
        Case ArquivoMenuAbrir
            nome = Text(NomeDoArquivoTB)
            If _FileExists(nome) Then
                Open nome For Input As #1
                Line Input #1, entrada
                Text(TextoTB) = entrada
                Close #1
            Else
                ok = MessageBox("File not found!", "", MsgBox_OkOnly + MsgBox_Information)
            End If
        Case ArquivoMenuSalvar
            nome = Text(NomeDoArquivoTB)
            Open nome For Output As #1
            entrada = Text(TextoTB)
            Print #1, entrada
            Close #1
        Case Separador
        Case ArquivoMenuSair
            End
        Case EditarMenu
        Case FormatarMenu
        Case AjudaMenu
        Case TextoTB
    End Select
End Sub
'$INCLUDE:'InForm\InForm.ui'

Runtime

  • Console
QB64 rodando em Ubuntu, captura com Peek, edição com GIMP
  • GUI
QB64 inForm
QB64 – inForm

Observações

As rotinas para escrita e leitura são as mesmas para console e interface gráfica, exceto que não foi usado o laço DO LOOP neste último caso porque no momento não temos o controle Área de Texto ou Caixa de Texto Multilinha.

  • Escrita:

OPEN nome_do_arquivo FOR OUTPUT AS #numero_do_arquivo

INPUT texto (Console)

texto = Text(nome_da_caixa_de_texto) (GUI)

PRINT#numero_do_arquivo, texto

CLOSE#numero_do_arquivo

  • Leitura:

OPEN nome_do_arquivo FOR INPUT AS #numero_do_arquivo

LINE INPUT#numero_do_arquivo, texto

PRINT texto (Console)

Text(nome_da_caixa_de_texto) = texto (GUI)

CLOSE#numero_do_arquivo

Conclusão

A linguagem humana tem semelhanças e diferenças se comparada às linguagens de programação de dispositivos. Pode ser codificada. Às vezes é jargão. E muitas vezes é censurada, dependendo das circunstâncias, de aspectos como o que, quem, quando, onde, como. No Brasil, entre 1937 e 1945 chegou a ser proibido falar idiomas estrangeiros em público, especialmente alemão, italiano e japonês, por causa da II Guerra Mundial. De 1967 a 1975 são publicados em 1ª página poemas de Camões no “Estado” e receitas culinárias no “Jornal da Tarde” em lugar dos textos censurados.

Leave a comment