Strona 1 z 1
Jak poprawić ten kod?
: czw cze 29, 2023 2:28 pm
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
Re: Jak poprawić ten kod?
: czw cze 29, 2023 8:16 pm
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.