Sign in Join
Wiki copytemporary

Console Mode Pascal/hu: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Szöveges módú Pascal
22
33## Szöveges módú Pascal programozás
44
55Sokan közülünk már jóval a grafikus felhasználói felületek (GUI-k) és integrált fejlesztőkörnyezetek (IDE-k) megjelenése előtt Pascal programokat írtak. Sokan mások pedig kezdők a Pascal programozás területén, és szeretnék kipróbálni a nyelv egyszerű eszközeit. Megint másoknak konzolos vagy szöveges módú alkalmazásokat kell fejleszteniük, hogy komplex rendszer vezérlő feladatokat hajtsanak végre.
66
77A Lazarus ideális környezetet kínál a Pascal elsajátításához, és a szöveges módú programok fejlesztéséhez. Az IDE összes lehetősége kihasználható, beleértve a Forráskód szerkesztőt a szintaxis kiemeléssel, a függvénytárakhoz való hozzáférést, bővített keresést, kódkiegészítést, és szintaxis ellenőrzést. Ha nem szeretnél form-okat vizuális komponensekkel, a Lazarus forráskód szerkesztője akkor is remek segédeszköz lesz a fejlesztéshez. Lefordíthatod és futtathatod a programodat a fejlesztés alatt, a szerkesztő elhagyása nélkül.
88
99Konzolos projekt készítéséhez kattints a fő menüsorban a *Projekt -\> Új projekt ...* menüpontra és válaszd a **Program**, **Konzolos alkalmazás**, vagy az **Egyedi program** valamelyikét. Az IDE nem fogja létrehozni a grafikus felülethez szükséges extra fájlokat, és nem fog megnyílni az Objektum Felügyelő ablaka sem, csak a Forráskód szerkesztő egy alap szerkezetű programmal, várva, hogy fejlessz.
1010
1111#### Egyedi program
1212
1313Ez egy nagyon minimális Pascal program. Válaszd ezt, ha mindent magad akarsz megoldani, vagy csak egyszerű teszt programot szeretnél készíteni, amit utána úgyis törölnél.
1414
1515#### Program
1616
1717Nagyjából ugyanaz, mint az [[Console Mode Pascal/hu|Egyedi program]], de az IDE itt már egy kicsit többet segít. Például amikor egy új unit-ot hozol létre a projektben, akkor az új unit nevét automatikusan hozzáadja a program uses szekciójához. Ez a viselkedés a projekt opciókban van definiálva.
1818
1919Egy példa abszolút kezdők részére:
2020
2121``` pascal
2222program Project1;
2323{$mode objfpc}{$H+}
2424uses
2525 {$IFDEF UNIX}{$IFDEF UseCThreads}
2626 cthreads,
2727 {$ENDIF}{$ENDIF}
2828 Classes
2929 { you can add units after this };
3030begin
3131 WriteLn('Hello World!');
3232 ReadLn;
3333end.
3434```
3535
3636#### Konzolos alkalmazás
3737
3838Ez egy olyan programot fog létrehozni, aminek az osztálya a TCustomApplication-ből van származtatva. A TCustomApplication sok olyan általános dolgot tartalmaz, ami a parancssori alkalmazások készítését egyszerűvé teszi. Ilyenek például a parancssori paraméterek ellenőrzése, súgó írása, környezeti változók figyelése, és a kivétel kezelés. Minden LCL program ezt használja automatikusan.
3939
4040## Program futtatása
4141
4242#### Fordítás
4343
4444Amikor kész a programod (vagy program részleted) lefordíthatod, és futtathatod a *Futtatás -\> Építés (vagy Gyors fordítás)* menüpontra kattintva a főmenüből, vagy a zöld "Play" gombra kattintva a gombsorban a főmenü alatt. Minden fordítói üzenet (figyelmeztetések, folyamat információk, hibaüzenetek, stb.) az **Üzenetek** ablakban fog megjelenni, és ha remélhetőleg a legvégén ez az üzenet is:
4545
46-` A(z) "Project1" projekt sikeresen lefordítva. :)`
46+```text
47+ A(z) "Project1" projekt sikeresen lefordítva. :)
48+```
4749
4850De hol van a program?!
4951
5052Ha még **nem** mentetted el a programot, akkor az IDE az ideiglenes könyvtárba fogja rakni (pl. /tmpunder Linux alatt, C:\temp Windows alatt, lásd a *Környezet -\> Beállítások ...* ablak *Környezet / Fájlok* lapon a *Könyvtár a teszt projektek építéséhez* beviteli mezőt).
5153
5254Ha már elmentetted a projektedet, akkor a program ugyanabban a könyvtárban jön létre, ahol a project1.lpi fájl található (megjegyzés: ez az alapeset, de ez is beállítható a *Projekt -\> Projekt opciók ...* ablak *Alkalmazás* lapon található *Cél fájlnév:* beviteli mezőben).
5355
5456#### Futtatás konzolban
5557
5658Futtathatod a programot úgy, hogy megnyitsz egy konzol (terminál) ablakot, utána a **cd** paranccsal belépsz a megfelelő könyvtárba, és beírod a program nevét:
5759
5860Linux alatt:
5961
60-` ./Project1`
62+```text
63+ ./Project1
64+```
6165
6266Windows alatt:
6367
64-` Project1.exe`
68+```text
69+ Project1.exe
70+```
6571
6672Viszont elég kényelmetlen mindig kilépni a Lazarus Forráskód szerkesztőből egy terminál elindítása miatt. Szerencsére van egy megoldás, amivel ez is kiküszöbölhető, és a terminál ablak automatikusan megnyittatható az IDE-vel, a programod futtatásához.
6773
6874#### Futattás az IDE-ben
6975
7076A főmenüben a *Futtatás -\> Futtatási paraméterek ...* menüpontra kattintva, a *Futtató alkalmazás használata* jelölőnégyzetet be kell pipálni. Az első alkalommal, amikor ezt csinálod, és megpróbálod futtatni az alkalmazást, valószínűleg egy ilyen üzenetet fogsz kapni:
7177
72-` xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied  `
78+```text
79+ xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied
80+```
7381
7482Ha ez történne, meg kell változtatnod a jogosultságokat a megfelelő fájlhoz (pl. a **chmod +x** paranccsal, vagy a Windows alatt a megfelelő segédeszköz használatával), persze root-ként. Ezután, minden alkalommal, amikor futtatod a programodat, egy konzol ablakban fog lefutni a programod automatikusan.
7583
7684Amint a programod lefutott, egy "Press enter" üzenet fog megjelenni a konzol ablakban. Ez azért jó, mert így még láthatod a programod által létrehozott kimenetet; ahogy `Enter`-t nyomsz, a konzol ablak bezárul.
7785
7886## Példák
7987
8088Használhatod a Lazarus forráskód szerkesztőt, hogy kipróbáld a Pascal könyvekben található példákat, vagy sajátot is írhatsz. A leghasznosabb függvények azok, amelyekkel rendszerparancsokat, vagy más programokat futtathatsz.
8189
8290#### Parancssori parancsok futtatása
8391
8492Itt egy példa egy *Egyedi program*ra, vagy *Program*ra:
8593
8694``` pascal
8795program TryShell;
8896uses
8997 Classes, Unix;
9098var
9199 S: LongInt;
92100begin
93101 S := fpsystem('/bin/ls -la *.p*'); // kilistázza a .pp, .pas, .php, .png stb. fájlokat az aktuális
94102 // könyvtárban
95103 WriteLn('A program futasa ezzel a statusszal ert veget: ', S)
96104end.
97105```
98106
99107#### Példa: az FPC és a Lazarus frissítése
100108
101109Sokkal összetettebb parancsok is végrehajthatók. Például, ha ellenőrizted az FPC és Lazarus SVN forrásokat (lásd [[buildfaq]]), naprakészen tarthatod az FPC és Lazarus forrás fájlokat az SVN forrásból való letöltéssel, a következő parancsokkal:
102110
103111``` pascal
104112program LazUpdate;
105113uses
106114 Classes, Unix;
107115var
108116 S: LongInt;
109117begin
110118 S := fpsystem('cd /usr/local/src/fpc/devel/fpc ; make clean');
111119 S := fpsystem('cd /usr/local/src/fpc/devel/lazarus ; make clean');
112120 S := fpsystem('cd /usr/local/src/fpc/devel ; svn update fpc >& ~/cvscheckout.log');
113121 S := fpsystem('cd /usr/local/src/fpc/devel ; svn update lazarus >& ~/cvslaz.log');
114122end.
115123```
116124
117125Vedd figyelembe, hogy az
118126
119127``` pascal
120128fpsystem('cd /könyvtárnév');
121129```
122130
123131parancs kiadása után az
124132
125133``` pascal
126134fpsystem('könyvtárban végrehajtandó parancs');
127135```
128136
129137nem fog működni, mert minden *fpsystem* függvényhívás után a program futása abban a könyvtárban folytatódik, ahonnan el lett indítva. Tehát egy sorba több parancsot kell beírnunk egyszerre.
130138
131139Természetesen nem feltétlenül szükséges minden parancsot a saját programodba beírni; készíthetsz egy szkriptet is erre a célra (a [[buildfaq]]-ról):
132140
133-` #!/bin/sh`\
134-` cd /usr/local/src/fpc/devel`\
135-` cd fpc`\
136-` make clean`\
137-` cd ..`\
138-` cd lazarus`\
139-` make clean`\
140-` cd ..`\
141-` svn up fpc >& ~/cvscheckout.log`\
142-` svn up lazarus >& ~/cvslaz.log `
141+```text
142+ #!/bin/sh
143+ cd /usr/local/src/fpc/devel
144+ cd fpc
145+ make clean
146+ cd ..
147+ cd lazarus
148+ make clean
149+ cd ..
150+ svn up fpc >& ~/cvscheckout.log
151+ svn up lazarus >& ~/cvslaz.log
152+```
143153
144154Nevezd el **updatelaz.sh**-nak, és utána ezt hívd meg a programodból:
145155
146156``` pascal
147157program LazUpdate1;
148158uses
149159 Classes, Unix;
150160var
151161 S: LongInt;
152162begin
153163 S := fpsystem('updatelaz.sh')
154164end.
155165```
156166
157167## Lásd még
158168
159169- [[Command line parameters and environment variables|Parancssori paraméterek és környezeti változók]]
160170- [[Executing External Programs|Külső programok futtatása]]
161171
162172---
163173*From the Free Pascal wiki, page "Console Mode Pascal/hu", as it stood on 2020-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history