domel.fm Opublikowano 10 Listopada 2006 Zgłoś Opublikowano 10 Listopada 2006 (edytowane) 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 10 Listopada 2006 przez domel.fm Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
grzmot Opublikowano 10 Listopada 2006 Zgłoś Opublikowano 10 Listopada 2006 Ale efektu przewijania tekstu nigdy się nie robiło zczytując literki z ekranu! Tekst już ma być w jakiejś tablicy i z tamtąd się go cyklicznie przepisuje zmieniając przesunięcie. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 10 Listopada 2006 Zgłoś Opublikowano 10 Listopada 2006 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... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
domel.fm Opublikowano 10 Listopada 2006 Zgłoś Opublikowano 10 Listopada 2006 Własnie.... Jezeli z góry znam tekst.... A to jest program który go sobie podmienia modyfikuje itp.... A dopiero potem przewija... Takze prawdopodobieńswo przewijania jednego i tego samego tekstu jest bardzo małe... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 11 Listopada 2006 Zgłoś Opublikowano 11 Listopada 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
domel.fm Opublikowano 12 Listopada 2006 Zgłoś Opublikowano 12 Listopada 2006 (edytowane) 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 12 Listopada 2006 przez domel.fm Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 12 Listopada 2006 Zgłoś Opublikowano 12 Listopada 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...