Skocz do zawartości
domel.fm

Czytanie Liter Z Ekranu

Rekomendowane odpowiedzi

Załozenie:

Korzstac wolno tylko z bibilioteki conio.h

Ekran jest ustawiony poleceniem textmode(C4350);

 

Ptrzebowabym jakąś funkcje która po ustaleniu kursora (gotoxy) w jakiejś tam pozycji odczyta mi co na tej pozycji stoi za znak ? Funkcja ma zapisac mi ten znak w postaci zmiennej char do jakiejś tablicy....

Nastepnie bede se odczytewał tablice i rysował to samo tylko ze przesunięte o jedna kolumne...

cgets i tym podobne funkcje zapisują znak w postaci 2 bajtów ... a to juz nie jest zmienna char.

 

{	   char buffer [8048];	   char buffer1 [8048];	   char buffer2 [100];	   int p;	   for(p=0; p<80; p++)	   {	   gettext(p++,1 , p++,50 ,buffer2);	   for(int r=0; r<100; r++)	   {	   buffer1[p*100+r] = buffer2[r];	   }	   }	   int g;	   for(g=0; g<80; g++)	   {	   gettext(1,1 , 79,50 ,buffer);	   clrscr();	   puttext(2,1 , 80,50 ,buffer);	   Sleep(100);	   }	   int h;	   for (h=0; h<80; h++)	   {	   for(int r=0; r<100; r++)	   {	   buffer2[r] = buffer1[h*100+r];	   }	   puttext(h++,1 , h++,50 , buffer2);	   gettext(1,1 , 79,50 ,buffer);	   clrscr();	   puttext(2,1 , 80,50 ,buffer);	   Sleep(100);	   }

Ogólnie cała funkcja ma realizować scrolla... Przewijać napis w prawo tak jak to jest na wyswietlaczach wiszących np. na urzedach miast...

 

Wyjasnie ze problem sprawia mi blok programu który zczytał by napis z ekranu a nastepnie po przejachaniu napisu poza ekran zaczał by go wyswietlać od nowa w ten sposób ze zaczyna od prawej krawedzi do lewej 80 kol staje się 1 potem 1 staje się 2 a 79 1 itd...

Edytowane przez domel.fm

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

lepiej pobierz sobie adres bufora ekranu, i stamtąd sobie bezpośrednio dane odczytujesz za pomocą wskaźnika. Nie pytaj mnie jaki to ma adres bo musiałbym poszukać, a więc i ty możesz to zrobić...

 

druga sprawa, że po co tak się męczyć? Jeśli z góry znasz text jaki ma być skrolowany to ładujesz go w tablicę, następnie czyścisz jeśli Ci trzeba jedną linię na ekranie , za pomocą gotoxy ustawiasz kursor w każdym kroku w inne miejsce i drukujesz tyle elementów z tablicy aby zmieściło się to w tej linii...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie rozumiem, no to podmieniasz sobie po prostu tego stringa na jakiś inny jaki chcesz... Co innego gdyby ten program działał jako TSR i musiał przewijać tekst w tle, tak że użytkownik wpisuje coś na ekran w konsoli a tu nagle tekst zaczyna mu się skrolować, ale wątpię aby o to chodziło.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie rozumiem, no to podmieniasz sobie po prostu tego stringa na jakiś inny jaki chcesz... Co innego gdyby ten program działał jako TSR i musiał przewijać tekst w tle, tak że użytkownik wpisuje coś na ekran w konsoli a tu nagle tekst zaczyna mu się skrolować, ale wątpię aby o to chodziło.

 

Sorki ze niesprecyzoweałem dokładnie na poczatku.

Program pobiera tekst od uzytkownika gdy uzytkownik potwierdzi wprowadzanie tekstu to program zaczyna go scrolować... Czyli nigdy nie wiesz jakiego stringa bedziesz scrolowac... Jak by to było wiadome to tablica i jest spoko...

 

 

EJJJJ ...

Kurde przeciez moge wrzucić tekst do tablicy i go scrolować .... :)...

 

Wiec teraz zapytam się jak go tam umiescic ?

A potem odczyteywać z niej ten tekst ?

Edytowane przez domel.fm

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

heh :)

 

zależy czy chcesz to zrobić akademicko upierdliwie czy półprofesjonalnie :). Zapewne chodzi o czysty C... wiec pozostaje:

 

1. zrobić tablice buforową np na 100 znaków

 

char tablica[100] = {NULL}; // nie jestem pewien czy inicjowanie tak zadziała, ale możesz spróbować

 

2. jeśli nie zadziała inicjowanie to najlepiej nadpisać całą tablicę zerami, czy nulami jak kto woli

 

ZeroMemory(tablica, 0, 100*sizeof(char) ); // tutaj sprawdź składnie funkcji zeromemory()

 

3. Wczytujesz tekst od usera, za pomocą funkcji scanf

 

scanf("%s",tablica);

 

4. hmm... no i masz juz dane w tablicy, więc je skrolujesz :)

 

5. wyświetlanie, pewnie potrzebujesz wyświetlania dowolnego podciągu z tej tablicy

 

poszukaj informacji na temat funkcji substr();

 

samo wyswietlenie tekstu z tablicy robisz za pomocą:

printf("user wprowadzil ten tekst : %s", tablica);

 

jeśli gdzieś wystąpił błąd to być może chodzi o użycie wskaźników na tablicę bądź nie-wskaźników, wiec musisz ewentualnie dopisać gdzieś * lub & przed nazwą tablica.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...