Sign in Join
Wiki copytemporary

InstantFPC/de: what changed

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

OldNewLine
11# Überblick
22
33InstantFPC erlaubt es, Pascal Skripte unter Linux, BSD, OS X und Windows auszuführen.
44
55## Unter Linux
66
77Beispiel für ein Pascal Skript unter Linux:
88
99``` pascal
1010#!/usr/bin/env instantfpc
1111begin
1212 writeln('Hallo FPC Programmierer');
1313end.
1414```
1515
1616Speichern Sie die Datei als "test.sh" und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.
1717
1818Beispiel:
1919
2020``` bash
2121chmod 755 test.sh
2222./test.sh
2323Hallo FPC Programmierer
2424```
2525
2626Sie können dem Pascal Skript Parameter übergeben:
2727
2828``` pascal
2929#!/usr/bin/env instantfpc
3030var
3131 i: Integer;
3232begin
3333 for i:=0 to ParamCount do writeln(ParamStr(i));
3434end.
3535```
3636
3737Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.
3838
3939``` bash
4040chmod 755 test1.sh
4141./test1.sh A B
4242/home/testuser/.cache/instantfpc/test1
4343A
4444B
4545```
4646
4747Übung: Wie können Pascal Skripte, welche sich gegenseitig aufrufen, Parameter hinauf- und herabgeben, so wie es mit bash Skripten möglich ist?
4848
4949## Unter Windows
5050
5151Beispiel, wie ein Pascalskript aussieht:
5252
5353``` pascal
5454begin
5555 writeln('Hallo FPC Programmierer');
5656end.
5757```
5858
5959Speichern Sie die Datei test.sh und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.
6060
6161Beispiel:
6262
6363```DOS
6464C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test.sh
6565Hallo FPC Programmierer
6666```
6767
6868Selbstverständlich können Sie Ihrem Pascalskript Parameter übergeben.
6969
7070``` pascal
7171var
7272 i: Integer;
7373begin
7474 for i:=0 to ParamCount do writeln(ParamStr(i));
7575end.
7676```
7777
7878Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.
7979
8080```DOS
8181C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test1.sh A B
8282A
8383B
8484```
8585
8686# Download
8787
8888InstantFPC ist im Lieferumfang von Lazarus enthalten.
8989
9090# Die Parameter von InstantFPC
9191
9292- **-h**: Hilfe
9393- **-v**: Ausgabe der aktuellen Version
9494- **--get-cache**: gibt das aktuelle Cacheverzeichnis aus
9595- **--set-cache=\<directory\>**: Bestimmt ein Verzeichnis zum Cacheverzeichnis
9696- **-B**: Kompiliert bei gültigem Cacheverzeichnis
9797- **--compiler=\<Pfad zum Compiler\>** verwendet den Compiler im Pfad. Als Standard wird FPC in \$Path bzw. %Path% gesucht.
9898- **--skip-run**: Do not execute the program. Useful to test if script compiles. Best combined with -B.
9999- Umgebungsvariable **INSTANTFPCCACHE**: Setzt das Cacheverzeichnis fest. --get-cache kann das Verzeichnis überschreiben.
100100- Umgebungsvariable **INSTANTFPCOPTIONS**: Optionen, die an den Compiler übergeben werden. Diese Optionen werden vor den Parametern übergeben.
101101
102102# Parameterübergabe an InstantFPC
103103
104104## Unter Linux
105105
106106Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.
107107
108108``` pascal
109109#!/usr/bin/instantfpc -O1 -Ci
110110begin
111111 WriteLn('Hallo');
112112end.
113113```
114114
115115Und / Oder Sie können Compiler-Optionen in der Umgebungsvariable **INSTANTFPCOPTIONS** setzen:
116116
117117``` bash
118118export INSTANTFPCOPTIONS="-Fu~/lazarus/components/codetools/units/x86_64-linux/"
119119```
120120
121121``` pascal
122122#!/usr/bin/instantfpc
123123uses FileProcs; // Die Unit FileProcs befindet sich im Ordner ../Lazarus/components/codetools
124124begin
125125end.
126126```
127127
128128## Unter Windows
129129
130130Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.\
131131Programmkörper des Pascal Skriptes:\
132132
133133``` pascal
134134begin
135135 WriteLn('Hallo');
136136end.
137137```
138138
139139Temporäres erweitern der Windows-Pfadvariable:
140140
141141```DOS
142142SET PATH=%PATH%;C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64
143143```
144144
145145Aufruf des Pascal Skriptes:
146146
147147```DOS
148148instantfpc -O1 -Ci test.sh
149149```
150150
151151# Beispiel für ein InstantFPC-Skript
152152
153153## Unter Linux
154154
155155Im folgenden Beispiel für Linux liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei **i18n** für internationalization).
156156
157157Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.
158158
159159Das Pascalscript speichern Sie unter dem Namen test.sh:
160160
161161``` pascal
162162#!/usr/bin/env instantfpc
163163uses
164164 SysUtils;
165165
166166var
167167 strWord: String;
168168
169169begin
170170 if ParamStr(1) = '' then
171171 begin
172172 write('Bitte gebe das zu numeronymisierende Wort ein: ');
173173 readln(strWord);
174174 end
175175 else
176176 strWord := ParamStr(1);
177177
178178 if length(strWord) > 2 then
179179 writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
180180 else
181181 writeln('keine Angaben');
182182end.
183183```
184184
185185Geben Sie dem Pascalskript die nötigen Rechte und führen Sie es dann aus:
186186
187187``` bash
188188chmod 755 test.sh
189189./test.sh
190190```
191191
192192## Unter Windows
193193
194194Im folgenden Beispiel für Windows liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei **i18n** für internationalization).
195195
196196Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.
197197
198198Das Pascalskript speichern Sie unter dem Namen test.sh:
199199
200200``` pascal
201201uses
202202 SysUtils;
203203
204204var
205205 strWord: String;
206206
207207begin
208208 if ParamStr(1) = '' then
209209 begin
210210 write('Bitte gebe das zu numeronymisierende Wort ein: ');
211211 readln(strWord);
212212 end
213213 else
214214 strWord := ParamStr(1);
215215
216216 if length(strWord) > 2 then
217217 writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
218218 else
219219 writeln('keine Angaben');
220220end.
221221```
222222
223223Aufruf des Pascalskriptes:
224224
225225```DOS
226226C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc.exe test.sh
227227```
228228
229229# InstantFPC mit Lazarus verwenden
230230
231231## Unter Linux
232232
233233### InstantFPC mit Lazarus compilieren
234234
235235Wie man ein Lazarusprojekt mit instantfpc compiliert.
236236
237237Folgendes wird benötigt:
238238
239239- Die Hauptdatei des Projektes ist eine InstantFPC Datei.
240240
241241Einstellungen:
242242
243243- Klicken Sie im Lazarus Hauptmenü auf Projekt -\> Projekteinstellungen -\> Compilereinstellungen -\> Kompilierung
244244- Entfernen Sie alle Häkchen aus den Zeilen die mit **Aufruf an:** beginnen
245245- Setzen Sie in der Gruppe **Vorher ausführen** in die Zeile die mit **Befehl** beginnt folgenden Text ein:
246246
247247``` bash
248248instantfpc --skip-run -B -gl "-Fu$(ProjUnitPath)" $Name($(ProjFile))
249249```
250250
251251- Setzen Sie in der Zeile **Nach Meldungen suchen** bei den Kästchen **make** und **FPC** die Häkchen.
252252
253253### InstantFPC mit Lazarus debugen
254254
255255- Machen Sie die Einstellungen wie im Abschnitt **InstantFPC mit Lazarus compilieren** beschrieben.
256256- Klicken Sie im Hauptmenü auf Start -\> Startparameter
257257- Geben Sie im Dialog **Hostapplikation** folgendes ein:
258258
259-`$(InstantFPCCache)/$NameOnly($(ProjFile))`
259+```text
260+$(InstantFPCCache)/$NameOnly($(ProjFile))
261+```
260262
261263- Geben Sie im Dialog **Arbeitsverzeichnis** folgendes ein:
262264
263-`$(ProjPath)`
265+```text
266+$(ProjPath)
267+```
264268
265269# Siehe auch
266270
267271- [[Console/de|Konsolenseite]]
268272
269273---
270274*From the Free Pascal wiki, page "InstantFPC/de", as it stood on 2020-02-17 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