BASIC ist eine imperative Programmiersprache mit objektorientierten Elementen.
Diese Seite bietet eine kurze Übersicht der Sprachelemente von BASIC-Makros.
Inhaltsverzeichnis
- Kommentare
- Konstantendeklaration
- Variablendeklarationen
- Operatoren
- Programmablaufsteuerung
- Weblinks
- Siehe auch
Kommentare
REM Kommentar
Konstantendeklaration
CONST ConstName=Ausdruck
Variablendeklarationen
Variablentypen
DIM Variable% DIM Variable AS INTEGER DIM Variable& DIM Variable AS LONG DIM Variable! DIM Variable AS SINGLE DIM Variable# DIM Variable AS DOUBLE DIM Variable@ DIM Variable AS CURRENCY DIM Variable$ DIM Variable AS STRING DIM Variable AS BOOLEAN DIM Variable AS DATE
Gültigkeit von Variablen
[REDIM] DIM STATIC | GLOBAL | PUBLIC | PRIVATE VarName As TYPNAME
Festlegung von Standardvariablen
DEFBOOL b DEFDATE t DEFDBL d DEFINT i DEFLNG l DEFOBJ o DEFVAR v
Deklaration von Arrays
DIM Text(20) AS STRING DIM Text(5 TO 25) Variable = ARRAY(Argumentliste) DIMARRAY(Argumentliste)
Operatoren
Zuweisung
[LET] Variable = Ausdruck
Mathematische Operatoren
+ Addition - Subtraktion * Multiplikation / Division ^ Potenzierung MOD Divisionsrest
Vergleichsoperatoren
= gleich < kleiner als > größer als <= kleiner gleich >= größer gleich <> ungleich
Logische Operatoren
AND Logisches UND OR Logisches ODER NOT Logisches NICHT XOR Logisches EXKLUSIV-ODER EQV Logische ÄQUIVALENZ IMP Logische IMPLIKATION
Programmablaufsteuerung
Verzweigungen
Einfache Verzweigung
IF Bedingung THEN Anweisungen ELSE Anweisungen END IF
Mehrfachverzweigung
SELECT CASE Variable
CASE 1 TO 5
Anweisungen
CASE 6, 7, 8
Anweisungen
CASE ELSE
Anweisungen
END SELECT
Entweder-Oder
IIF (Ausdruck, AusdruckWahr, AusdruckFalsch)
Kopfgesteuerte Schleifen
WHILE Bedingung Anweisungen WEND DO WHILE Wiederholbedingung Anweisungen LOOP DO UNTIL Abbruchbedingung Anweisungen LOOP
Fußgesteuerte Schleifen
DO Anweisungen LOOP WHILE Wiederholbedingung DO Anweisungen LOOP UNTIL Abbruchbedingun
Schleifen mit beliebig positionierter Abbruchbedingung
DO Anweisungen IF Abbruchbedingung THEN EXIT DO Anweisungen LOOP
Zählschleifen
FOR Variable = Startwert TO Endwert STEP Schrittweite Anweisungen IF Abbruchbedingung THEN EXIT FOR Anweisungen NEXT
Prozedurdeklaration
SUB SubName(Parameter1 AS Type, Parameter2 AS Type,...) Anweisungen END SUB
Aufruf der Prozedur:
SubName(Wert1, Wert2,...)
GOSUB Label Label: Anweisungen RETURN
Funktionsdeklaration
FUNCTION FunctionName(Parameter1 AS Typ, Parameter2 AS Typ,...) AS Typ Anweisungen FunktionsName=Ergebnis END FUNCTION
Aufruf der Funktion:
Variable=FunctionName(Parameter1, Parameter2,...)
Sprünge
GOTO Label Anweisungen Label: Anweisungen
Fehlerbehandlungsfunktionen
ON ERROR GOTO Aufruf der Fehlerbehandlung RESUME Rückkehr aus Fehlerbehandlungsroutine ERL ermittelt Zeilennummer des Fehlers ERR ermittelt Fehlercode ERROR ermittelt Meldungstext zum Fehlercode
Vordefinierte Prozeduren und Funktionen
ABS() ergibt Absolutwert
ASC() ergibt ASCII-Code zu einem einzelnen Zeichen
ATN() ergibt Arcustangens in Radiant
BEEP erzeugt einen Ton
BLUE() ermittelt Blauanteil des Farbcodes
CBOOL() konvertiert nach Boolean
CBYTE() konvertiert nach Byte
CDATEFROMISO() konvertiert Iso-Datum nach Datumszahl
CDATETOISO() konvertiert Datumszahl nach Iso-Format
CDATE() konvertiert nach Date
CDBL() konvertiert nach Double
CINT() konvertiert nach Integer
CLNG() konvertiert nach Long
CSNG() konvertiert nach Single
CSTR() konvertiert nach String
CALL Aufruf einer Prozedur
CHDIR wechselt das aktuelle Verzeichnis / Laufwerk
CHDRIVE wechselt das aktuelle Laufwerk
CHOOSE() Auswahl aus einer Argumentliste
CHR() ergibt Zeichen zum ASCII-Code
CLOSE schließt eine Datei
CONVERTFROMURL() konvertiert URL-Pfad nach System-Dateipfad
CONVERTTOURL() konvertiert System-Dateipfad nach URL-Pfad
COS() ergibt Cosinus in Radiant
CREATEUNODIALOG() API-Funktion
CREATEUNOLISTENER() API-Funktion
CREATEUNOSERVICE() API-Funktion
CREATEUNOSTRUCT() API-Funktion
CURDIR() ermittelt aktuellen Dateipfad
DATESERIAL() ermittelt Date-Wert einer Datumsangabe
DATEVALUE() ergibt Datumswert
DATE ergibt Systemdatum
DAY() ergibt Tageskomponente einer Datumsangabe
DECLARE Deklariert Prozedur / Funktion in einer DLL
DIR() sucht Dateien oder Verzeichnisse
ENVIRON() ermittelt Umgebungsvariablen
EOF() prüft auf Dateiende
EQUALUNOOBJECTS() API-Funktion
EXP() ermittelt Potenz zur Basis e
FILEATTR() ermittelt File-Attribute
FILECOPY kopiert eine Datei
FILEDATETIME() ermittelt Erstelldatum und -uhrzeit der Datei
FILEEXISTS() prüft die Verfügbarkeit einer Datei oder Verzeichnis
FILELEN() ermittelt Dateilänge
FINDOBJECT() Zugriff auf ein Objekt
FINDPROPERTYOBJECT() Zugriff auf Objekteigenschaften
FIX() liefert Vorkommazahl
FORMAT() wandelt Zahl in eine Zeichenkette beliebiger Formatierung um
FREEFILE() ermittelt nächste freie Datenkanalnummer
FREELIBRARY() gibt per DECLARE geladene DLLs wieder frei
GETATTR() ergibt Dateiattribute
GETPROCESSSERVICEMANAGER() API-Funktion
GETSOLARVERSION() ermittelt Office-Version
GETSYSTEMTICKS() ermittelt Systemzeitperioden
GET liest Datensatz aus relative Datei
GLOBALSCOPE API-Routine
GREEN() ermittelt Grünanteil des Farbcodes
HASUNOINTERFACES() API-Funktion
HEX() liefert Hex-Zahl
HOUR() ergibt Stundenkomponente einer Datumsangabe
INSTR() ermittelt Position in einem Zeichenkettenausdruck
INPUTBOX() zeigt Dialog mit Eingabefeld
INPUT# liest Daten aus einer sequentiellen Datei
INT() liefert Vorkommazahl
ISARRAY() prüft auf Array
ISDATE() prüft auf Date
ISEMPTY() prüft auf den Wert EMPTY einer Variant-Variablen
ISMISSING() prüft auf übergebenes Argument
ISNULL() prüft auf den Wert NULL einer Variant-Variablen
ISNUMERIC() prüft auf Zahl
ISOBJECT() prüft auf Object
ISUNOSTRUCT() prüft auf Uno-Struct
JOIN() verkettet Zeichenketten
KILL löscht eine Datei
LBOUND() ermittelt untere Grenze eines Arrays
LCASE() konvertiert in Kleinbuchstaben
LSET ordnet Zeichenketten linksbündig an
LTRIM() löscht führende Leerzeichen einer Zeichenkette
LEFT() ermittelt linken Anteil einer Zeichenkette
LEN() ermittelt Anzahl der Zeichen einer Zeichenkette
LINE INPUT# liest eine Zeile aus einer sequentiellen Datei
LOC() ermittelt gegenwärtige Position innerhalb einer Datei
LOF() ermittelt Dateigröße
LOG() ermittelt natürlichen Logarithmus zur Basis e
MID() ermittelt den mittleren Anteil einer Zeichenkette
MINUTE() ergibt Minutenkomponente einer Datumsangabe
MKDIR erzeugt ein Dateiverzeichnis
MONTH() ergibt Monatskomponente einer Datumsangabe
MSGBOX zeigt einen Dialog mit einer Meldung an
NAME ... AS ... benennt eine Datei um
NOW() ermittelt die aktuelle Systemzeit
OCT() liefert Oktalzahl
OPEN Dateiname [FOR Modus] [ACCESS EAModus] [Schutz] AS [#]Datenkanalnummer [LEN = Datensatzlänge]
öffnet einen Datenkanal
OPTION BASE { 0 | 1} Legt die Standard-Untergrenze für Arrays als 0 bzw. 1 fest
OPTION EXPLICIT Legt fest, dass jede Variable explizit mit DIM deklariert werden muss
PRINT gibt Zeichenfolge aus
PUT schreibt Datensatz in relative Datei
QBCOLOR() ergibt RGB-Farbcode
RGB() wandelt Blau-, Rot- und Grünanteil in RGB
RSET ordnet Zeichenkette rechtsbündig an
RTRIM() löscht Leerzeichen am Ende der Zeichenkette
RANDOMIZE initialisiert Zufallszahlengenerator
RED() ermittelt Rotanteil des Farbcodes
RESET schließt alle geöffneten Dateien
RIGHT() ermittelt rechten Anteil einer Zeichenkette
RMDIR löscht Dateiverzeichnis
RND() ermittelt Zufallszahl
SECOND() ergibt Sekundenkomponente einer Datumsangabe
SEEK setzt Dateizeiger
SETATTR verändert Dateiattribute
SET setzt einen Objektverweis
SGN() ermittelt Vorzeichen einer Zahl und gibt Integer -1 oder 1 zurück
SHELL() startet ein anderes Anwendungsprogramm
SIN() ermittelt Sinus in Radiant
SPACE() ergibt Leerzeichenfolge
SPLIT() teilt Zeichenkette auf
SQR() ermittelt Quadratwurzel
STOP hält Programmausführung an
STRCOMP() vergleicht 2 Zeichenketten
STR() konvertiert nach String
STRING() erstellt eine Zeichenkette
SWITCH() Auswertung einer Argumentliste
TAN() ermittelt Tangens in Radiant
TIMESERIAL() wandelt Stunde, Minute, Sekunde nach Date
TIMEVALUE() wandelt String nach Date
TIME liefert aktuelle Systemzeit
TIMER liefert vergangene Zeit in Sekunden seit Mitternacht
TRIM() entfernt alle führenden und folgenden Leerzeichen in einer Zeichenkette
TWIPSPERPIXELX() ermittelt Bildschirmauflösung
TWIPSPERPIXELY() ermittelt Bildschirmauflösung
UBOUND() ermittelt obere Grenze eines Arrays
UCASE() konvertiert nach Großbuchstaben
VAL() konvertiert Zeichenkette nach Zahl
WAIT unterbricht Programmausführung in Anzahl Millisekunden
WEEKDAY() ermittelt Wochentag
WITH ... END WITH Zugriff auf Objektstrukturen
WRITE schreibt Daten in eine sequentielle Datei
YEAR() ergibt Jahrkomponente einer Datumsangabe
Weblinks
http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html - Der Developer's Guide (englisch)
http://docs.sun.com/app/docs/doc/819-1326 StarOffice 8 Programmierhandbuch für BASIC
http://www.starbasicfaq.de/ - StarBasic/ OpenOffice.org-Basic FAQ von Michael Dannenhöfer
http://www.pitonyak.org/oo.php - OpenOffice.org Macro Information von Andrew Pitonyak (englisch)
http://development.openoffice.org/ - OpenOffice.org-Seite für Entwickler (englisch)
http://documentation.openoffice.org/HOW_TO/various_topics/VbaStarBasicXref.pdf - Ein Dokument zur Übertragung von Excel-VBA zu StarBasic (Calc)
http://www.openoffice.org/dev_docs/source/sdk/ - OpenOffice.org Software Development Kit (SDK) (englisch)
http://www.ooomacros.org/user.php - Seite mit fertigen Makros für Anwender (englisch)
http://sourceforge.net/project/showfiles.php?group_id=87718&release_id=192186 - OpenOffice.org Macros bei SourceForge (englisch)
http://codesnippets.services.openoffice.org/ - Code-Schnipsel-Sammlung von OpenOffice.org (englisch)
http://smalldataproblem.org/ooextras/downloads/german/ – Makros, Anleitungen, Vorlagen etc.