Scrolling textu – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Scrolling textu – Pascal – Fórum – Programujte.comScrolling textu – Pascal – Fórum – Programujte.com

 

imagination
~ Anonymní uživatel
4 příspěvky
10. 12. 2007   #1
-
0
-

potrebujem pomoct s prikladom, ktory je zrejme dost jednoduchy, pretoze by som ho mala napisat v prienehu niekolkych minut. ide o to, ze sa pokusam scrollovat text dolava. prvy priklad, kde text urcite nepresahuje riadok, uz mam ako tak spraveny (vo verzii, ktoru vidite, zbehne otocenie iba raz, ale to je jedno). teraz ho mam prerobit tak, aby fungoval aj pre dlhsie texty. vymyslela som niekolko algoritmov, ale programovanie kazdeho sa zda byt dlhsia zalezitost. nemohli by ste mi ukazat, ako ho riesit jednoducho a rychlo? zrejme mi stale cosi unika... mam stale pocit, ze to zbytocne komplikujem...

uses crt;
const c=80;
var pt,ut:string;
i,ii:integer;
procedure posun(t:string;n:integer);
var di:integer;
begin
ut:='';
for di:=n to length(t) do ut:=ut+t[di];
for di:=1 to c-length(t) do ut:=ut+' ';
for di:=1 to (n-1) do ut:=ut+t[di];
end;
begin
clrscr;
pt:='abcdefghijklmnopqrstuvwxyz';
for ii:=1 to c-length(pt) do
begin
for i:=1 to c-length(pt)-ii do write(' '); write(pt);
delay(250); clrscr;
end;
for i:=1 to length(pt) do
begin
posun(pt,i);
writeln(ut); delay(200); clrscr;
end;
readkey;
end.

Nahlásit jako SPAM
IP: 85.216.191.–
Laaca0
Stálý člen
10. 12. 2007   #2
-
0
-

No sláva, konečně zajímavé téma!
Když už voláš jednotku Crt, tak je rozumné využít funkci GotoXY, která přemístí kurzor na určenou lokaci. Tímto způsobem se celá věc radikálně zjednodušší. Co ale GotoXY neumí je přesun na záporné souřadice - jestli to chceš využít, tak to musíš obejít.
V každém případě je způsobů jak tvůj problém naprogramovat hodně. Tohle je jeden z nich:



uses crt;
const SIRKA_OBRAZOVKY = 80;
veta='V dětství jsem plakal mnoho. Jako chlapec '+
'méně. Jako mladý muž dvakrát. '+
'Poprvé to bylo těsně před válkou. Večer. '+
'Řekl jsem dívce, ktreou jsem tehdy miloval: '+
'"Hm, tak to asi znamená konec"';

Procedure Cekej;
begin
readkey;while keypressed do readkey;
end;

Procedure WriteXY(x,y:integer;s:string);
begin
if x<1 then
begin
delete(s,1,1-x);
x:=1;
end;
GotoXY(x,y);
writeln(s);
end;

var n,x,l:integer;
begin
ClrScr;
l:=Length(veta);
n:=SIRKA_OBRAZOVKY-l;
if n<1 then n:=1;
WriteXY(n,1,veta);
Cekej;

for x:=n downto -l do
begin
WriteXY(x,1,veta+' ');
if keypressed then Break;
delay(250);
end;
Cekej;
end.


(Jednotka Crt je mimochodem multiplatformní. Tzn. tento program bude fungovat i v jiných systémech než DOS/Windows)

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
imagination
~ Anonymní uživatel
4 příspěvky
17. 12. 2007   #3
-
0
-

no... stazka tomu rozumiem, ale ani tvoj program asi neviem pekne upravit aj pre dlhsie texty, teda aby program vypisoval text len do jedneho riadku a az potom, ked konecne dojde na koniec, ho zacal vypisovat od zaciatku. mam to uz nejak spravene, ale je to dlhsia praca a toto je taky cvicny maturitny prikladik, teda nieco, co by som mala zlvadnut za 15 minut...

Nahlásit jako SPAM
IP: 85.216.191.–
Laaca
~ Anonymní uživatel
225 příspěvků
17. 12. 2007   #4
-
0
-

Aha, ty chceš, aby se to psalo jenom do jedinného řádku. Já jsem naopak myslel, že chceš, aby se to přelévalo z řádku na řádek. To je jenom drobná úprava - až se dostanu domů, tak to udělám.

Nahlásit jako SPAM
IP: 195.113.79.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Vyrezanie textu s textu... — založil kotlas6667

Zakodovani textu — založil TrixCZE

Přeuspořádání textu — založil Ondra_AS

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý