Jak poprawić ten kod?

Użytkowanie arkusza kalkulacyjnego
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Jak poprawić ten kod?

Post autor: KontoLibreOffice »

Jak poprawić składnię tego kodu by działał w LO

Kod: Zaznacz cały

Imports System.Collections.Generic
Module Module1
     Sub Main()
        Dim n1 As Integer
        Dim n2 As Integer
        n1 = 1
        n2 = 1
        Console.WriteLine("{0}", n1)
        While n2 < 500
            Console.WriteLine(n2)
            n2 = n2 + n1
            n1 = n2 - n1
        End While
        Console.ReadLine()
     End Sub
End Module
7.5.6.2 (X86_64)
Jan_J
Posty: 4570
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Jak poprawić ten kod?

Post autor: Jan_J »

Kod zawiera dość elementarną bezparametrową procedurę (makro) Visual Basica. Jedyny element, jaki „nie pasuje” do StarBasica, to obsługa obiektu Console, czyli wyposażenia makra w dostęp do odpowiednika standardowych strumieni wejścia i wyjścia.

Nie chodzi o składnię języka, tylko o obiekty należące do biblioteki.

Warto inaczej sformułować pytanie:
(1) jak w StarBasicu realizować odpowiedniki czytania i pisania z urządzeń znakowych?
(2) program nie komunikuje się z maszynerią obsługującą dokumenty. Jaki jest sens pisania tego typu skryptów koniecznie akurat w Basicu będącym częścią pakietu biurowego?

Ad (2) każdy „poważny” język skryptowy przeznaczony nie-wyłącznie do obsługi wewnętrznych mechanizmów aplikacji graficznej ma dostęp do standardowych kanałów wejścia i wyjścia tekstowego, dostarczanych przez system operacyjny. Obecnie najpopularniejszym językiem tego typu jest Python. Ale jest ich sporo.

Ad (1) wierzę, że StarBasic, czyli implementacja Basic w Open/LibreOffice także ma taką możliwość. Standardowa funkcja Print albo generuje okno typu MessageBox, albo wypisuje wartość do pliku. Potrzebny byłby obiekt podobny do konsoli (jak w VB), która prezentowałaby efekt dwustronnej komunikacji. Nie znam szczegółów realizacyjnych biblioteki Basica związanych z tym mechanizmem. A już zwłaszcza funkcjonujących w zbliżony sposób w każdym obsługiwanym systemie operacyjnym.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ