Download PDF-Version - bei Bartels
Transcript
Bartels User Language
Programmierhandbuch
Zugriff auf Vektor-Element
Ein einfacher Ausdruck gefolgt von einem Ausdruck in eckigen Klammern ist wiederum ein einfacher Ausdruck. Mit dieser
Operation erfolgt die Auswahl eines Elements aus einem Vektor oder string-Wert. Der Ausdruck vor der eckigen
Klammer referenziert dabei den Vektor, der Ausdruck innerhalb der eckigen Klammern wird als int-Wert interpretiert und
dient der Indizierung des Vektor-Elements. Der Indizierungs-Wert darf dabei nicht negativ sein; der Wert 0 (Null) verweist
auf das erste Element des Vektors. Beim Speichern auf einen Vektor erfolgt ggf. eine dynamische Anpassung des VektorFeldbereichs durch den User Language Interpreter. Der lesende Zugriff auf einen Vektor ist nur innerhalb des aktuell
definierten Feldbereiches zulässig. Die folgende Funktion strisoctal überprüft, ob der als Parameter übergebene
string-Wert nur oktale Ziffern (0 bis 7) enthält und gibt für diesen Fall den Wert 1, in allen anderen Fällen den Wert 0
zurück:
int strisoctal(string str)
{
for (i=0;i<strlen(str);i++)
if (!isdigit(str[i]) || str[i]=='8' || str[i]=='9')
return(0);
return(1);
}
In obigem Beispiel wird die Feldlängen-Kontrolle für den Vektor-Lese-Zugriff mit Hilfe der auf string-Werte anwendbaren
Systemfunktion strlen durchgeführt. Im folgenden Programm-Konstrukt hingegen geschieht dies mit Hilfe einer speziellen
int-Variablen (filecount):
string curfilename="", filelist[];
int i, filecount=0;
while (scandirfnames(".",".ddb",curfilename)==1)
filelist[filecount++]=curfilename;
for (i=0;i<filecount;i++)
printf("File %s \n",filelist[i]);
In obigem Beispiel wird zunächst eine Liste aller im aktuellen Verzeichnis auffindbaren Dateinamen mit der Endung .ddb
erzeugt, und anschließend wird diese Liste ausgegeben.
Zugriff auf Struktur- oder Index-Element
Ein einfacher Ausdruck gefolgt von einem Punkt und einem Identifier ist wieder ein einfacher Ausdruck. Der erste Ausdruck
referenziert dabei eine Struktur bzw. einen Index-Typ, und der Identifier nach dem Punkt-Operator muss ein definiertes
Element aus dieser Struktur bzw. diesem Index-Typ bezeichnen. Der schreibende Zugriff auf Struktur-Elemente ist
grundsätzlich immer möglich; auf die Elemente von Index-Typen hingegen darf nicht gespeichert werden (Fehlermeldung
durch den Compiler). Umgekehrt ist der lesende Zugriff auf die Elemente einer aktuell gültigen index-Variablen immer
zulässig, während aus struct-Variablen nur die zuvor initialisierten gelesen werden können (ansonsten SpeicherzugriffsVerletzung und entsprechende Fehlermeldung durch den Interpreter). Der folgende Programmteil definiert eine Liste
bestehend aus Strukturen und erzeugt für jedes aktuell verfügbare Layout-Macro einen Listen-Eintrag mit dem MacroNamen und der Macro-Klasse:
int macrocnt=0;
struct { string name; int class; } macrolist[];
index L_MACRO macro;
forall (macro) {
macrolist[macrocnt].name=macro.NAME;
macrolist[macrocnt++].class=macro.CLASS;
}
Sprachbeschreibung
Seite 2-28
Related documents
PDF Version
PDF Version
BEDIENUNGSANLEITUNG - CONRAD Produktinfo.
PDF Version
Web-basierte Datenbank zur Verwaltung administrativer Daten
Kurzeinführung in den Altium Designer
Kurzeinführung in den Altium Designer
PDF-Version - bei Bartels
PDF-Version
PDF-Version - bei Bartels
PDF-Version - bei Bartels
Bartels AutoEngineer® User Manual