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

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{Makros und Scripting}}
{{Makros und Scripting}}
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.
=Liste Funktionssammlungen=
==TMyDir==
<syntaxhighlight lang="Delphi">
function CreateDirectory(const Path: string): boolean;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;
function Trim(const Path: string): string;
function CombinePath(const cRoot: string; aAdd: array of string): string;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;
function GetDirectoryName(const Path: string): string;
</syntaxhighlight>
==TMyFile==
<syntaxhighlight lang="Delphi">
        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;
</syntaxhighlight>
==TObsPath==
<syntaxhighlight lang="Delphi">
</syntaxhighlight>
===TObsPath.CreateDirectory===
Definition:
<syntaxhighlight lang="Delphi">
function CreateDirectory(const Path: string): boolean;
</syntaxhighlight>
Erklärung:<br />
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
cPfad := 'c:\Beispiel\Verzeichnis\Pfad\';
lAngelegt := TObsPath.CreateDirectory(cPfad);
</syntaxhighlight>


=Empty=
===TObsPath.Exists===
Definition:
<syntaxhighlight lang="Delphi">
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;
</syntaxhighlight>
Erklärung:<br />
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.<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
lExistiert := TObsPath.Exists(cPfad);
</syntaxhighlight>
 
===TObsPath.CombinePath===
Definition:
<syntaxhighlight lang="Delphi">
function CombinePath(const cRoot: string; aAdd: array of string): string;
</syntaxhighlight>
Erklärung:<br />
Dem Pfad ''cRoot'' werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] ''aAdd'' als Verzeichnisse angefügt und so ein neuer Pfad erstellt.<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
cRoot := 'c:\Beispiel\Verzeichnis\Pfad';
cPfad := TObsPath.CombinePath(cRoot,['Import','2019']);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad\Import\2019'
</syntaxhighlight>
 
===TObsPath.BuildPath===
Definition:
<syntaxhighlight lang="Delphi">
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;
</syntaxhighlight>
Erklärung:<br />
Diese Funktion ist ein Mix aus [[#TObsPath.CombinePath|TObsPath.CombinePath]] und [[TObsPath.Exists|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.<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
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;
</syntaxhighlight>
 
===TObsPath.GetDirectoryName===
Definition:
<syntaxhighlight lang="Delphi">
function GetDirectoryName(const Path: string): string;
</syntaxhighlight>
Erklärung:<br />
Den Pfad des Verzeichnisses zurück.<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
cDatei := 'c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt';
cPfad := TObsPath.GetDirectoryName(cDatei);
//Ergebnis: cPfad ist 'c:\Beispiel\Verzeichnis\Pfad'
</syntaxhighlight>
 
=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'')<br />
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (''string'') und Zahlen (''integer'' und ''double'')<br />
Parameter: string/integer/double<br />
Parameter: string/integer/double<br />
Rückgabe: boolean<br />
Rückgabe: boolean<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cText := '';
     cText := '';
     IstLeer := Empty(cText);
     IstLeer := Empty(cText);
Zeile 15: Zeile 127:
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).
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=
==Length==
Verwendung: Ermittelt die Länge einer Zeichenkette (string).<br />
Verwendung: Ermittelt die Länge einer Zeichenkette (string).<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: integer<br />
Rückgabe: integer<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cText  := 'Dies ist ein Beispiel.';
     cText  := 'Dies ist ein Beispiel.';
     nLaenge := Length(cText);
     nLaenge := Length(cText);
Zeile 26: Zeile 138:
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''.
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=
==AllTrim==
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.<br />
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cText := '  Dies ist ein Beispiel.      ';
     cText := '  Dies ist ein Beispiel.      ';
     cText := AllTrim(cText);
     cText := AllTrim(cText);
Zeile 37: Zeile 149:
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.''".
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=
==UpperCase/LowerCase==
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.<br />
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cText  := 'Beispiel';
     cText  := 'Beispiel';
     cUpper := UpperCase(cText);
     cUpper := UpperCase(cText);
Zeile 49: Zeile 161:
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''.
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=
==ExtractFileName==
Verwendung: Dateinamen aus Dateipfad auslesen.<br />
Verwendung: Dateinamen aus Dateipfad auslesen.<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cDatei := 'c:\\Ordner\Datei.txt';
     cDatei := 'c:\\Ordner\Datei.txt';
     cDatei := ExtractFileName(cDatei);
     cDatei := ExtractFileName(cDatei);
Zeile 60: Zeile 172:
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''.
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=
==StrTran==
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).<br />
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).<br />
Parameter: string, string, string<br />
Parameter: string, string, string<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cDatei := 'Datei.txt';
     cDatei := 'Datei.txt';
     cName  := StrTran(cDatei ,'.txt','');
     cName  := StrTran(cDatei ,'.txt','');
Zeile 71: Zeile 183:
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''.
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=
==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.<br />
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.<br />
Parameter: string, integer<br />
Parameter: string, integer<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cText  := 'Dies ist ein Beispiel';
     cText  := 'Dies ist ein Beispiel';
     cLeft  := LeftStr(cText,2);
     cLeft  := LeftStr(cText,2);
Zeile 84: Zeile 196:
{{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.}}
{{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=
==Token==
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.<br />
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.<br />
Parameter: string, string, integer<br />
Parameter: string, string, integer<br />
Rückgabe: string<br />
Rückgabe: string<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
     cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
     cTeil  := Token(cDatei,'_',2);
     cTeil  := Token(cDatei,'_',2);
Zeile 95: Zeile 207:
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''.
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=
==NumToken==
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.<br />
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.<br />
Parameter: string, string<br />
Parameter: string, string<br />
Rückgabe: integer<br />
Rückgabe: integer<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
     cDatei := 'Datei_Name_Mit_Unterstrichen.txt';
     nTeile := NumToken('_',cDatei);
     nTeile := NumToken('_',cDatei);
Zeile 106: Zeile 218:
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.
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=
==iVal==
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.<br />
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: integer<br />
Rückgabe: integer<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cZahl := '4';
     cZahl := '4';
     nZahl := iVal(cZahl);
     nZahl := iVal(cZahl);
Zeile 117: Zeile 229:
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.
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=
==fVal==
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.<br />
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.<br />
Parameter: string<br />
Parameter: string<br />
Rückgabe: double<br />
Rückgabe: double<br />
Beispiel:<br />
Beispiel:<br />
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     cZahl := '1234,56';
     cZahl := '1234,56';
     nZahl := fVal(cZahl);
     nZahl := fVal(cZahl);
Zeile 128: Zeile 240:
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.
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=
==Roundy==
Verwendung: Runden eines Dezimalwerts (Typ: Double)<br />
Verwendung: Runden eines Dezimalwerts (Typ: Double)<br />
Parameter: double, integer<br />
Parameter: double, integer<br />
Rückgabe: double<br />
Rückgabe: double<br />
Aufruf:
Aufruf:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     nDezimalwert := 1234.5678;
     nDezimalwert := 1234.5678;
     nGerundeterWert := Roundy(nDezimalwert,2);
     nGerundeterWert := Roundy(nDezimalwert,2);
Zeile 139: Zeile 251:
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.
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=
==Trunc==
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts<br />
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts<br />
Parameter: double<br />
Parameter: double<br />
Rückgabe: integer<br />
Rückgabe: integer<br />
Aufruf:
Aufruf:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang=="Delphi">
     nDezimalwert := 1234.5678;
     nDezimalwert := 1234.5678;
     nWert := Trunc(nDezimalwert);
     nWert := Trunc(nDezimalwert);
</syntaxhighlight>
</syntaxhighlight>
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.
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.

Version vom 10. April 2019, 11:32 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

function CreateDirectory(const Path: string): boolean;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;
function Trim(const Path: string): string;
function CombinePath(const cRoot: string; aAdd: array of string): string;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;
function GetDirectoryName(const Path: string): string;

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.