Udostępnij przez


Metody wejściowe i wyjściowe

Istnieją dwa różne podejścia do operacji we/wy konsoli, które zależą od elastyczności i kontrolowania potrzeb aplikacji. Podejście wysokiego poziomu umożliwia proste we/wy strumienia znaków, ale ogranicza dostęp do wejściowych i ekranowych konsoli. Podejście niskiego poziomu wymaga, aby deweloperzy pisali więcej kodu i wybierali spośród większego zakresu funkcji, ale zapewnia również większą elastyczność aplikacji.

Uwaga / Notatka

Podejście niskiego poziomu nie jest zalecane w przypadku nowych i ciągłych prac programistycznych. Aplikacje wymagające funkcjonalności funkcji z funkcji we/wy konsoli niskiego poziomu są zachęcane do korzystania z sekwencji terminali wirtualnych i eksplorowania naszej dokumentacji dotyczącej zarówno funkcji klasycznych, jak i terminalu wirtualnego oraz planu ekosystemu.

Aplikacja może używać funkcji We/Wy plików, ReadFile i WriteFile oraz funkcji konsoli , ReadConsole i WriteConsole, w przypadku operacji we/wy wysokiego poziomu, które zapewniają pośredni dostęp do wejściowych i ekranu konsoli. Funkcje wejściowe wysokiego poziomu filtrują i przetwarzają dane w buforze wejściowym konsoli w celu zwrócenia danych wejściowych jako strumienia znaków, odrzucania danych wejściowych myszy i zmiany rozmiaru buforu. Podobnie funkcje wyjściowe wysokiego poziomu zapisują strumień znaków wyświetlanych w bieżącej lokalizacji kursora w buforze ekranu. Aplikacja kontroluje sposób działania tych funkcji, ustawiając tryby we/wy konsoli.

Funkcje we/wy niskiego poziomu zapewniają bezpośredni dostęp do wejściowych i ekranu konsoli, umożliwiając aplikacji dostęp do zdarzeń wejściowych myszy i zmiany rozmiaru buforu oraz rozszerzonych informacji o zdarzeniach klawiatury. Funkcje wyjściowe niskiego poziomu umożliwiają aplikacji odczytywanie lub zapisywanie w określonej liczbie kolejnych komórek znaków w buforze ekranu albo odczytywanie lub zapisywanie w prostokątnych blokach komórek znaków w określonej lokalizacji w buforze ekranu. Tryby wejściowe konsoli wpływają na dane wejściowe niskiego poziomu, umożliwiając aplikacji określenie, czy zdarzenia myszy i zmiany rozmiaru buforu są umieszczane w buforze wejściowym. Tryby wyjściowe konsoli nie mają wpływu na dane wyjściowe niskiego poziomu.

Metody we/wy wysokiego poziomu i niskiego poziomu nie wykluczają się wzajemnie, a aplikacja może używać dowolnej kombinacji tych funkcji. Zazwyczaj jednak aplikacja używa jednego podejścia lub drugiego wyłącznie i zalecamy skupienie się na jednym konkretnym modelu w celu uzyskania optymalnych wyników.

Wskazówka

Idealna aplikacja w przyszłości koncentruje się na metodach wysokiego poziomu i rozszerzy dodatkowe potrzeby dzięki wirtualnym sekwencjom terminali za pośrednictwem metod we/wy wysokiego poziomu, jeśli jest to konieczne, unikając całkowitego korzystania z funkcji we/wy niskiego poziomu.

W poniższych tematach opisano tryby konsoli oraz funkcje we/wy wysokiego i niskiego poziomu.