Click or drag to resize

Stuff Function

Delete and insert characters in a string.

Namespace:  XSharp.Core
Assembly:  XSharp.Core (in XSharp.Core.dll) Version: 2.4a
Syntax
 FUNCTION Stuff(
	cTarget AS STRING,
	dwStart AS DWORD,
	dwDelete AS DWORD,
	cInsert AS STRING
) AS STRING
View Source

Parameters

cTarget
Type: String
The string into which characters are inserted and deleted.
dwStart
Type: UInt32
The position in <cTarget> where the insertion/deletion occurs.
dwDelete
Type: UInt32
The number of characters to delete.
cInsert
Type: String
The string to insert.

Return Value

Type: String
<cTarget> with the specified characters deleted and <cInsert> inserted.
Remarks
Stuff() first deletes characters from <cTarget>, then inserts characters into the resulting string to form the return string.  Stuff() can perform the following six operations: Insert:
If <dwDelete> is 0, no characters are removed from <cTarget>.  <cInsert> is then inserted at <dwStart>, and the entire string is returned.
For example, Stuff("My dog has fleas.", 12, 0, "no ") returns "My dog has no fleas." Replace:
If <cInsert> is the same length as <dwDelete>, <cInsert> replaces characters beginning at <dwStart>.
The same number of characters are deleted as are inserted, and the resulting string is the same length as the original.
For example, Stuff("My dog has fleas.", 12, 5, "bones") returns "My dog has bones." Delete:
If <cInsert> is a NULL_STRING, the number of characters specified by <dwDelete> are removed from <cTarget>, and the string is returned without any added characters.
For example, Stuff("My dog has fleas.", 1, 3, NULL_STRING) returns "dog has fleas." Replace and insert:
If <cInsert> is longer than <dwDelete>, all characters from <dwStart> up to <dwDelete> are replaced and the rest of <cInsert> is inserted.  Since more characters are inserted than are deleted, the resulting string is always longer than the original.
For example, Stuff("My dog has fleas.", 8, 3, "does not have") returns "My dog does not have fleas." Replace and delete:
If the length of <cInsert> is less than <dwDelete>, more characters are deleted than inserted.
The resulting string, therefore, is shorter than the original.
For example, Stuff("My dog has fleas.", 8, 3, "is") returns "My dog is fleas." Replace and delete rest:
If <dwDelete> is greater than or equal to the number of characters remaining in <cTarget> beginning with <dwStart>, all remaining characters are deleted before <cInsert> is inserted.
For example, Stuff("My dog has fleas.", 8, 10, "is.") returns "My dog is."
Examples
These examples demonstrate the six basic operations of Stuff():
X#
 1// Insert
 2? Stuff("ABCDEF", 2, 0, "xyz")            // AxyzBCDEF
 3// Replace
 4? Stuff("ABCDEF", 2, 3, "xyz")            // AxyzEF
 5// Delete
 6? Stuff("ABCDEF", 2, 2, NULL_STRING)    // ADEF
 7// Replace and insert
 8? Stuff("ABCDEF", 2, 1, "xyz")            // AxyzCDEF
 9// Replace and delete
10? Stuff("ABCDEF", 2, 4, "xyz")            // AxyzF
11// Replace and delete rest
12? Stuff("ABCDEF", 2, 10, "xyz")        // Axyz
See Also