Sign in Join
Wiki copytemporary

Console Mode Pascal/hu: what changed

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

OldNewLine
1-<font size="7">Szöveges módú Pascal</font>
2-
3-<div style="text-align: justify;">
1+Szöveges módú Pascal
42
53## Szöveges módú Pascal programozás
64
75Sokan 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.
86
97A 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.
108
119Konzolos 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.
1210
1311#### Egyedi program
1412
1513Ez 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.
1614
1715#### Program
1816
1917Nagyjá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.
2018
2119Egy példa abszolút kezdők részére:
2220
2321``` pascal
2422program Project1;
2523{$mode objfpc}{$H+}
2624uses
2725 {$IFDEF UNIX}{$IFDEF UseCThreads}
2826 cthreads,
2927 {$ENDIF}{$ENDIF}
3028 Classes
3129 { you can add units after this };
3230begin
3331 WriteLn('Hello World!');
3432 ReadLn;
3533end.
3634```
3735
3836#### Konzolos alkalmazás
3937
4038Ez 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.
4139
4240## Program futtatása
4341
4442#### Fordítás
4543
4644Amikor 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:
4745
4846` A(z) "Project1" projekt sikeresen lefordítva. :)`
4947
5048De hol van a program?!
5149
5250Ha 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).
5351
5452Ha 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).
5553
5654#### Futtatás konzolban
5755
5856Futtathatod 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:
5957
6058Linux alatt:
6159
6260` ./Project1`
6361
6462Windows alatt:
6563
6664` Project1.exe`
6765
6866Viszont 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.
6967
7068#### Futattás az IDE-ben
7169
7270A 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:
7371
7472` xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied  `
7573
7674Ha 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.
7775
78-Amint 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 <span class="kbd">Enter</span>-t nyomsz, a konzol ablak bezárul.
76+Amint 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.
7977
8078## Példák
8179
8280Haszná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.
8381
8482#### Parancssori parancsok futtatása
8583
8684Itt egy példa egy *Egyedi program*ra, vagy *Program*ra:
8785
8886``` pascal
8987program TryShell;
9088uses
9189 Classes, Unix;
9290var
9391 S: LongInt;
9492begin
9593 S := fpsystem('/bin/ls -la *.p*'); // kilistázza a .pp, .pas, .php, .png stb. fájlokat az aktuális
9694 // könyvtárban
9795 WriteLn('A program futasa ezzel a statusszal ert veget: ', S)
9896end.
9997```
10098
10199#### Példa: az FPC és a Lazarus frissítése
102100
103101Sokkal ö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:
104102
105103``` pascal
106104program LazUpdate;
107105uses
108106 Classes, Unix;
109107var
110108 S: LongInt;
111109begin
112110 S := fpsystem('cd /usr/local/src/fpc/devel/fpc ; make clean');
113111 S := fpsystem('cd /usr/local/src/fpc/devel/lazarus ; make clean');
114112 S := fpsystem('cd /usr/local/src/fpc/devel ; svn update fpc >& ~/cvscheckout.log');
115113 S := fpsystem('cd /usr/local/src/fpc/devel ; svn update lazarus >& ~/cvslaz.log');
116114end.
117115```
118116
119117Vedd figyelembe, hogy az
120118
121119``` pascal
122120fpsystem('cd /könyvtárnév');
123121```
124122
125123parancs kiadása után az
126124
127125``` pascal
128126fpsystem('könyvtárban végrehajtandó parancs');
129127```
130128
131129nem 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.
132130
133131Termé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):
134132
135133` #!/bin/sh`\
136134` cd /usr/local/src/fpc/devel`\
137135` cd fpc`\
138136` make clean`\
139137` cd ..`\
140138` cd lazarus`\
141139` make clean`\
142140` cd ..`\
143141` svn up fpc >& ~/cvscheckout.log`\
144142` svn up lazarus >& ~/cvslaz.log `
145143
146144Nevezd el **updatelaz.sh**-nak, és utána ezt hívd meg a programodból:
147145
148146``` pascal
149147program LazUpdate1;
150148uses
151149 Classes, Unix;
152150var
153151 S: LongInt;
154152begin
155153 S := fpsystem('updatelaz.sh')
156154end.
157155```
158156
159157## Lásd még
160158
161159- [[Command line parameters and environment variables|Parancssori paraméterek és környezeti változók]]
162160- [[Executing External Programs|Külső programok futtatása]]
163-
164-</div>
165161
166162---
167163*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