Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przenoszenie wyrazu do nowej linii jeśli jest za długi i ma zostać podzielony

Ostatnio zmodyfikowano 2014-05-31 14:01
Autor Wiadomość
marek252
Temat założony przez niniejszego użytkownika
Przenoszenie wyrazu do nowej linii jeśli jest za długi i ma zostać podzielony
» 2014-05-30 21:35:01
Witam.
Czy jest jakiś sposób aby wyrazy które nie mieszczą się w danej linii były przesuwane do kolejnej zamiast dzielić je w taki sposób, że część wyrazu jest w jednej linii a np. ostatnia litera w ostatniej. Da się coś takiego zrobić? Program w konsoli.
Pozdrawiam

edit: Żeby nie zakładać kolejnego pytanie, szybkie pytanie. Czy da się zrobić tak, aby w instrukcji switch case po wybraniu odpowiedniej opcji np. 2 nie trzeba było naciskać Entera żeby poszło dalej, tylko od razu po naciśnięciu 2 wykonało się dalej?
P-111129
Moorfox
» 2014-05-30 22:57:20
Da się zrobić obie rzeczy, tylko pytanie czy jesteś na wystarczającym poziomie wiedzy, żeby to ogarnąć i w obu przypadkach trzeba użyć WinAPI:
Odpowiem na 2 pytanie bo mi to bardziej podchodzi:
Masz w komputerze coś takiego jak tablica wektorów przerwań znajdująca się na początku pamięci RAM. Tablica ta to wskaźniki na
obsługe przerwań. Co to przerwanie ? Dla przykładu naciśnięcie klawisza generuje przerwanie ruch myszką itp. Czyli wciśnięcie klawisza generuje przerwanie, które zostanie obsłużone przez przypisaną mu obsługę przerwania. Cała zabawa, polega na tym, żeby napisać własną obsługę przerwań i przekierować na nią wektor, czyli, że przy przyduszeniu 2, zostanie wykonane to co normalnie powinno plus generowane jest to co robi klawisz ENTER.Wartość wektora powinna być zmieniana w instrukcji switch i sprowadzona do poprzedzniej wartosci po za nią. No ale jest problem, pracujesz w trybie chronionym, a takie rzeczy to się dało w DOS'ie robić. Musisz to zrobić inaczej, jak to zrobić znajdziesz w kursie WinAPI w temacie Haki.
P.S. Może da się prościej może istnieje już taka funkcja, prawie na pewno wystarczy poszukać.
P-111132
marek252
Temat założony przez niniejszego użytkownika
» 2014-05-31 09:57:25
Dzięki za odpowiedź, jednak nie umiem jeszcze tyle, że móc to zrobić. Poszukam tej funkcji, może jest.
P-111146
SeaMonster131
» 2014-05-31 10:46:13
Nie trzeba używać WinAPI ani do tego ani tego.

1. Jeżeli jakieś zdanie trzymasz w stringu, musisz podzielić je na wyrazy, a następnie porównywać długość kolejnych wyrazów z max długością ekranu. Jeżeli wyraz nie zmieści się na ekranie (w jednej linii), to przenosisz go do następnej linii.

2. Funkcja getch() z conio.h.
P-111147
Moorfox
» 2014-05-31 13:27:46
To powiedz jak otrzymać długość ekranu
P-111158
killjoy
» 2014-05-31 13:47:53
@UP Piszesz o tworzeniu własnych przerwań, a nie wiesz jak dobrać się do rozmiaru konsoli pod windowsem ok... Poza tym, miałeś po części racje w swoim pierwszym poście, bo do tego trzeba użyć WinApi, a konkretnie: GetConsoleScreenBufferInfo()
P-111160
Moorfox
» 2014-05-31 13:55:48
@UP Nie napisałem, że nie wiem (bo wiem), pytam, raczej czy on widzi inną opcje niż WinAPI, gdyż stwierdził, że w obu nie jest ono potrzebne. 
Mój błąd jedynie w drugim pytaniu, że nie pomyślałem o getch(). Właściwie tym stwierdzeniem, zaciekawił mnie jak działa getch()
P.S. Pisanie własnego przerwania nie jest wcale trudniejsze od WinAPI, tylko po prostu za dużo osób skupia się na samym programowaniu, zapominając, że informatyka to nie tylko to(ostatnio, gdzieś to napisałem na forum)
P-111161
killjoy
» 2014-05-31 14:01:57
@UP Ok, nie wyczułem tej nutki sarkazmu :P, ale mogłeś dodać "bez WinApi", wtedy wszystko byłoby jasne.
P-111162
« 1 »
  Strona 1 z 1