1.5.6 StpPreMoveBuf, StpPreMoveField, – Verschieben von Daten innerhalb des Satzes
StpPreMoveField( nFieldFrom, nFieldTo, nKeepSource );
StpPreMoveBuf( nBufFrom, nBufLen, nBufTo, nKeepSource );
|
Argumente
|
nFieldFrom
Feld, das kopiert/verschoben werden soll.
| ||||
|
|
nFieldTo
Feld, in das der Wert kopiert/verschoben werden soll.
| ||||
|
|
nBufFrom
Position innerhalb des Buffers ab der kopiert/verschoben werden soll.
| ||||
|
|
nBufLen
Länge des Buffers, der kopiert/verschoben worden soll.
| ||||
|
|
nBufTo
Position innerhalb des Buffers, an die die Werte kopiert/verschoben werden sollen.
| ||||
|
|
nKeepSource
Der Parameter ist Optional, d.h. wird er nicht mitgegeben, so wird die Quelle nach dem Verschieben der Werte gelöscht.
| ||||
|
Rückgabewert
|
StpRc:
| ||||
|
Beschreibung
|
Diese Funktion setzt Positionen und Längen innerhalb eines Feldes oder eines Buffers.
Beim Aufruf von StpExport, StpImport oder StpKonvert werden die Positionen und Längen ausgewertet und die Daten entsprechend diesen Angaben innerhalb des Buffers oder des angegebenen Feldes kopiert/verschoben.
Plausibilität der Daten wird nicht kontrolliert.
Ist das Zielfeld kürzer, wird der Rest des Quellwertes abgetrennt. Dasselbe gilt für Schlüsselfelder, sie werden ohne Warnung überschrieben!
WARNUNG: Schlüsselfelder dürfen beim StpKonvert und beim StpImport NICHT geändert werden!
Die Funktion kann beliebig oft nacheinander benutzt werden. Die Ausführung der Verschiebungen erfolgt nach der Reihenfolge der Funktionsaufrufe.
Empfohlene Alternative
BufAddParam mit Parameter REORG:MOVE. Der Befehl BufAddParam ist mit einer wesentlich verkürzten Laufzeit verbunden.
| ||||
|
Beispiel
|
StpPreMoveField(47,48,0); // D6F47 Anw1 C25 nach D6F48 Anw2 verschieben
StpKonvert("006",1);
Exit();
| ||||
|
Beispiel
|
String( strTSSPRE, strBuffer, strKey_0, strKey_1 );
AssignString( strTSSPRE, "006" );
BufCreateBuffer( strTSSPRE, 6, 0, 0 );
//Schreibe original Saetze
AssignString( strKey_0, "0110012" );
AssignString( strKey_1, "0110212" );
StpPreSetKeys( strKey_0, strKey_1, );
StpExport( strTSSPRE, 1, "c:\tmp\Export_Pre.txt", "w", 0, 0);
//Exportiere abgewandelte Saetze
StpPreMoveBuf( 33, 5, 93, 1 );
StpPreMoveBuf( 33, 20, 113, 1 );
StpPreMoveBuf( 33, 15, 173 );
StpPreSetKeys( strKey_0, strKey_1, );
StpExport( strTSSPRE, 1, "c:\tmp\Export_Pre.txt", "a", 0, 0);
//Exportiere abgewandelte Saetze
StpPreMoveBuf( 138, 1, 37, 1 ); //S bleibt stehen
StpPreMoveBuf( 139, 1, 38 );
StpPreMoveBuf( 140, 1, 39, 1 ); //H bleibt stehen
StpPreMoveBuf( 141, 1, 40 );
StpPreMoveBuf( 142, 1, 41, 1 ); //R bleibt stehen
StpPreMoveBuf( 143, 1, 42 );
StpPreSetKeys( strKey_0, strKey_1, );
StpExport( strTSSPRE, 1, "c:\tmp\Export_Pre.txt", "a", 0, 0);
| ||||
|
Funktionsart
|
STPFunktion
|
