OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Zeile 3: Zeile 3:
=Liste Funktionssammlungen=
=Liste Funktionssammlungen=
==TMyDir==
==TMyDir==
<syntaxhighlight lang="Delphi">
</syntaxhighlight>
===TMyDir.CreateDirectory===
===TMyDir.CreateDirectory===
Definition:
Definition:

Version vom 10. April 2019, 11:55 Uhr


Hier finden Sie nützliche Funktionen, die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.

Liste Funktionssammlungen

TMyDir

TMyDir.CreateDirectory

Definition:

function CreateDirectory(const Path: string): boolean;

Erklärung:
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.

Beispiel:

cPfad := 'c:\Beispiel\Verzeichnis\Pfad\';
lAngelegt := TMyDir.CreateDirectory(cPfad);

TMyDir.Exists

Definition:

function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;

Erklärung:
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter CreateIfNotExists mit dem boolschen Wert True übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.

Beispiel:

lExistiert := TMyDir.Exists(cPfad);

TMyDir.CombinePath

Definition:

function CombinePath(const cRoot: string; aAdd: array of string): string;

Erklärung:
Dem Pfad cRoot werden die einzelnen Einträge aus dem Array aAdd als Verzeichnisse angefügt und so ein neuer Pfad erstellt.

Beispiel:

cRoot := 'c:\Beispiel\Verzeichnis\Pfad';
cPfad := TMyDir.CombinePath(cRoot,['Import','2019']);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad\Import\2019'

TMyDir.BuildPath

Definition:

function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;

Erklärung:
Diese Funktion ist ein Mix aus TMyDir.CombinePath und TMyDir.Exists. Es wird ein Pfad aus den Angaben cRoot und aAdd erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit cPath. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.

Beispiel:

cRoot := 'c:\Beispiel\Verzeichnis\Pfad';
cPfad := TMyDir.CombinePath(cRoot,['Import','2019']);
if (TMyDir.BuildPath(cRoot,['Import','2019'],cPfad)) then begin
    Meldung('Verzeichnis '+cPfad+' existiert.');
end;

TMyDir.GetDirectoryName

Definition:

function GetDirectoryName(const Path: string): string;

Erklärung:
Den Pfad des Verzeichnisses zurück.

Beispiel:

cDatei := 'c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt';
cPfad := TMyDir.GetDirectoryName(cDatei);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad'

TMyFile

        class function IsFile(const Path: string): boolean; static;
        class function Combine(const Path1: string; const Path2: string): string; static;
        class function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean; static;
        class function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string; static;
        class function CombineRelativePath(const FilePath: string;
                                           const RelativeBasePath: string;
                                           const CombineBasePath: string): string; static;
        class function IsCombineRelativePath(const FilePath: string;
                                             const RelativeBasePath: string;
                                             const CombineBasePath: string;
                                             out ReturnPath: string): boolean; static;
        class function GetWKSName(): string; static;
        class function GetWKSNameUNC(): string; static;
        class function GetFilePathUNC(const Path: string): string; static;
        class function GetFilePath(const Path: string): string; static;
        class function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean; static;
        class function IsGetFilePath(const Path: string; out ReturnPath: string): boolean; static;
        class function HasValidFileNameChars(const FileName: string;  const UseWildcards: boolean): boolean; static;
        class function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean; static;
        class function Delete(const FilePath: string): boolean; static;

TObsPath

TObsPath.CreateDirectory

Definition:

function CreateDirectory(const Path: string): boolean;

Erklärung:
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.

Beispiel:

cPfad := 'c:\Beispiel\Verzeichnis\Pfad\';
lAngelegt := TObsPath.CreateDirectory(cPfad);

TObsPath.Exists

Definition:

function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;

Erklärung:
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter CreateIfNotExists mit dem boolschen Wert True übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.

Beispiel:

lExistiert := TObsPath.Exists(cPfad);

TObsPath.CombinePath

Definition:

function CombinePath(const cRoot: string; aAdd: array of string): string;

Erklärung:
Dem Pfad cRoot werden die einzelnen Einträge aus dem Array aAdd als Verzeichnisse angefügt und so ein neuer Pfad erstellt.

Beispiel:

cRoot := 'c:\Beispiel\Verzeichnis\Pfad';
cPfad := TObsPath.CombinePath(cRoot,['Import','2019']);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad\Import\2019'

TObsPath.BuildPath

Definition:

function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;

Erklärung:
Diese Funktion ist ein Mix aus TObsPath.CombinePath und TObsPath.Exists. Es wird ein Pfad aus den Angaben cRoot und aAdd erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit cPath. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.

Beispiel:

cRoot := 'c:\Beispiel\Verzeichnis\Pfad';
cPfad := TObsPath.CombinePath(cRoot,['Import','2019']);
if (TObsPath.BuildPath(cRoot,['Import','2019'],cPfad)) then begin
    Meldung('Verzeichnis '+cPfad+' existiert.');
end;

TObsPath.GetDirectoryName

Definition:

function GetDirectoryName(const Path: string): string;

Erklärung:
Den Pfad des Verzeichnisses zurück.

Beispiel:

cDatei := 'c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt';
cPfad := TObsPath.GetDirectoryName(cDatei);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad'

Liste Funktionen

Empty

Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (string) und Zahlen (integer und double)
Parameter: string/integer/double
Rückgabe: boolean
Beispiel:

    cText := '';
    IstLeer := Empty(cText);
    cText := 'Beispiel';
    IstLeer := Empty(cText);

Erklärung: Der String-Variable cText wird ein leerer Text zugewiesen. Mit Empty wird der Wert nun geprüft. Die boolsche Variable IstLeer ist dann true (wahr). Als nächstes wird cText der Wert "Beispiel" zugewiesen und eine erneute Prüfung mit Empty durchgeführt. Da cText jetzt einen Text enthält, ist der Wert der Variablen IstLeer nun false (falsch).

Length

Verwendung: Ermittelt die Länge einer Zeichenkette (string).
Parameter: string
Rückgabe: integer
Beispiel:

    cText   := 'Dies ist ein Beispiel.';
    nLaenge := Length(cText);

Erklärung: Der String-Variable cText wird der Wert Dies ist ein Beispiel. zugewiesen. Mit Length wird die Länge ermittelt. Der Satz "Dies ist ein Beispiel." hat 22 Zeichen. nLaenge hat also den Wert 22.

AllTrim

Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.
Parameter: string
Rückgabe: string
Beispiel:

    cText := '  Dies ist ein Beispiel.       ';
    cText := AllTrim(cText);

Erklärung: Der String-Variable cText wird der Wert " Dies ist ein Beispiel. " zugewiesen. Mit AllTrim werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable cText entspricht also dem Wert "Dies ist ein Beispiel.".

UpperCase/LowerCase

Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.
Parameter: string
Rückgabe: string
Beispiel:

    cText  := 'Beispiel';
    cUpper := UpperCase(cText);
    cLower := LowerCase(cText);

Erklärung: Der String-Variable cText wird der Wert Beispiel zugewiesen. Mit UpperCase und LowerCase wird die Zeichenkette umgewandelt. cUpper enthält danach den Wert BEISPIEL und cLower den Wert beispiel.

ExtractFileName

Verwendung: Dateinamen aus Dateipfad auslesen.
Parameter: string
Rückgabe: string
Beispiel:

    cDatei := 'c:\\Ordner\Datei.txt';
    cDatei := ExtractFileName(cDatei);

Erklärung: Der String-Variable cDatei wird der Wert c:\\Ordner\Datei.txt zugewiesen. Mit ExtractFileName wird der Dateiname herausgesucht und zurückgegeben. Danach enthält cDatei nur noch den Wert Datei.txt.

StrTran

Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).
Parameter: string, string, string
Rückgabe: string
Beispiel:

    cDatei := 'Datei.txt';
    cName  := StrTran(cDatei ,'.txt','');

Erklärung: Der String-Variable cDatei wird der Wert Datei.txt zugewiesen. Mit StrTran wird im Text der Variable cDatei nach .txt gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält cDatei nur noch den Wert Datei.

LeftStr/RightStr

Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.
Parameter: string, integer
Rückgabe: string
Beispiel:

    cText  := 'Dies ist ein Beispiel';
    cLeft  := LeftStr(cText,2);
    cRight := RightStr(cText,5);

Erklärung: Der String-Variable cText wird der Wert Dies ist ein Beispiel zugewiesen. Mit LeftStr und RightStr werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. cLeft enthält danach den Wert Di und cRight den Wert spiel.

HINWEIS: Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls Dies ist ein Beispiel enthält.

Token

Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.
Parameter: string, string, integer
Rückgabe: string
Beispiel:

    cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
    cTeil  := Token(cDatei,'_',2);

Erklärung: Der String-Variable cDatei wird der Wert Datei_Name_Mit_Unterstrichen.txt zugewiesen. Mit Token wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: Datei, Name, Mit und Unterstrichen.txt. Es wird der zweite Teil gefordert. Die Variable cTeil enthält demnach den Wert Name.

NumToken

Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.
Parameter: string, string
Rückgabe: integer
Beispiel:

    cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
    nTeile := NumToken('_',cDatei);

Erklärung: Der String-Variable cDatei wird der Wert Datei_Name_Mit_Unterstrichen.txt zugewiesen. Mit NumToken wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: Datei, Name, Mit und Unterstrichen.txt. Die Variable nTeile entspricht also dem Wert 4.

iVal

Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.
Parameter: string
Rückgabe: integer
Beispiel:

    cZahl := '4';
    nZahl := iVal(cZahl);

Erklärung: Der String-Variable cZahl wird der Wert 4 zugewiesen. Mit iVal wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable nZahl entspricht also dem Wert 4.

fVal

Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.
Parameter: string
Rückgabe: double
Beispiel:

    cZahl := '1234,56';
    nZahl := fVal(cZahl);

Erklärung: Der String-Variable cZahl wird der Wert 1234,56 zugewiesen. Mit fVal wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable nZahl entspricht also dem Wert 1234,56.

Roundy

Verwendung: Runden eines Dezimalwerts (Typ: Double)
Parameter: double, integer
Rückgabe: double
Aufruf:

    nDezimalwert := 1234.5678;
    nGerundeterWert := Roundy(nDezimalwert,2);

Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable nDezimalwert wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable nGerundeterWert entspricht also 1234,57.

Trunc

Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts
Parameter: double
Rückgabe: integer
Aufruf:

    nDezimalwert := 1234.5678;
    nWert := Trunc(nDezimalwert);

Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable nDezimalwert wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable nWert entspricht also 1234.