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
- GUI
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.