concatenateWithSeparator()

Die Systemfunktion vgLib.concatenateWithSeparator() verknüpft zwei Zeichenfolgen, wobei eine Separatorzeichenfolge dazwischen eingefügt wird. Wenn die Anfangslänge der Zielzeichenfolge null ist (nachfolgende Leerzeichen und Nullen nicht mitgerechnet), wird das Trennzeichen übergangen und die Quellenzeichenfolge wird in die Zielzeichenfolge kopiert. Dabei geschieht Folgendes:
  1. Alle nachgestellten Leerzeichen oder Nullen werden aus dem Zielwert gelöscht.
  2. Der Trennzeichenwert wird an den Wert angehängt, der während Schritt 1 produziert wird.
  3. Der Quellenwert wird an den Wert angehängt, der im vorherigen Schritt erzeugt wurde.
  4. Wenn die verknüpfte Ausgabe länger ist als der Zielparameter, wird die Ausgabe abgeschnitten. Wenn die Ausgabe kürzer ist als der Zielparameter, wird die Ausgabe mit Leerzeichen gefüllt, selbst wenn die Ausgabe eine Zahl ist.

vgLib.concatenateWithSeparator() ist eine von vielen Funktionen, die zum Zweck der Kompatibilität mit früheren Versionen beibehalten wird. Neuer Code sollte Standard-EGL-Operatoren für diese Zwecke einsetzen.

Syntax

  vgLib.concatenateWithSeparator(
    target CHAR | DBCHAR | MBCHAR | UNICODE | STRING | HEX inOut,
    source CHAR | DBCHAR | MBCHAR | UNICODE | STRING | HEX in,
    separator CHAR | DBCHAR | MBCHAR | UNICODE | STRING | HEX in)
  returns (result INT)
target
Eine Zeichentypvariable, mit der die Inhalte von source verknüpft werden.
source
Ein beliebiger Wert, der zuordnungskompatibel mit dem STRING-Wert ist, den EGL mit target verknüpft.
separator
Ein beliebiger Wert, der zuordnungskompatibel mit dem STRING-Wert ist, den EGL zwischen target und source einfügt.
result
Einer der folgenden ganzzahligen Werte:
-1
Die verknüpfte Zeichenfolge ist zu lang, um in das Zielfeld zu passen. Andere Zeichen als Nullwerte oder Leerzeichen wurden vom Ergebnis abgeschnitten.
0
Die verknüpfte Zeichenfolge passt in das Zielfeld.

Beispiel

Das folgende Beispiel stellt die Verwendung der Funktion vgLib.concatenateWithSeparator() dar:

phrase, ormeme CHAR(7);
result INT;
phrase = "and";
ormeme = "or";
result = vgLib.concatenateWithSeparator(phrase,ormeme,"/");
if (result == 0)
    SysLib.writeStdout("***"+phrase+"***"); // phrase = "and/or "
end

Feedback