PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Deletes the duplicates from an array.
The following arrays can be handled:
  • One-dimensional array of simple elements.
  • Two-dimensional array of simple elements. Duplicates are deleted according to the value of one or more columns.
  • One-dimensional array of classes or structures. Duplicates are deleted according to the value of one or more members.
  • One-dimensional array by providing a comparison procedure.
Remark: ArrayDistinct is used to obtain a new array without duplicates.
Example
arrMyArray is array of int = [ 1, 2, 3, 1, 4, 5, 2, 6 ]
// arrMyArray contains [ 1, 2, 3, 1, 4, 5, 2, 6 ]
 
ArrayDeleteDuplicate(arrMyArray)
// arrMyArray contains [ 1, 2, 3, 4, 5, 6 ]
// Use with an array of structures
StACategory is Structure
CODE_CATEGORY is string(5)
CATEGORY is string(300)
END
arrTheCategories is array of StACategory
 
// Code for filling the array
...
 
// Delete the duplicates
ArrayDeleteDuplicate(arrTheCategories, asMember, "CODE_CATEGORY;CATEGORY")
Syntax

Deleting the duplicates from a one-dimensional array of simple elements Hide the details

ArrayDeleteDuplicate(<WLanguage array> [, <Deletion options>])
<WLanguage array>: Array
Name of the Array variable to use. This array must be a one-dimensional array.
This array can also correspond to an array of simple elements of an advanced variable ("Group" array in the gglContact variables for example).
<Deletion options>: Optional integer constant
Deletion options corresponding to one or more constants:
tccIgnoreAccentDelete duplicates ignoring accents.
This option is useful for arrays of strings.
tccIgnoreCaseDelete duplicates ignoring case.
This option is useful for the arrays of character strings.
tccIgnoreInsideSpaceDelete duplicates ignoring spaces inside strings.
This option is useful for the arrays of character strings.
tccIgnorePonctuationAndSpaceDelete duplicates ignoring spaces and punctuation.
This option is useful for arrays of strings.
tccIgnoreSpaceDelete duplicates ignoring the spaces at the beginning and at the end of strings.
This option is useful for the arrays of character strings.

Deleting duplicates from a two-dimensional array of simple elements according to one or more columns Hide the details

ArrayDeleteDuplicate(<WLanguage array> , <asColumn> , <Column>)
<WLanguage array>: Array
Name of the Array variable to use. This array must be a two-dimensional array.
This array can also correspond to a two-dimensional array of an advanced type (for example, deleting duplicates from an xlsDocument variable according to the column value).
<asColumn>: Constant
asColumn: Constant used to handle a two-dimensional array of simple elements according to several columns.
The asColumn constant can be combined with one or more options for deletion:
tccIgnoreAccentDelete duplicates ignoring accents.
This option is applied to all the columns according to which the deletion of duplicates is performed.
This option is useful for arrays of strings.
tccIgnoreCaseDelete duplicates ignoring case.
This option is applied to all the columns according to which the deletion of duplicates is performed.
This option is useful for the arrays of character strings.
tccIgnoreInsideSpaceDelete duplicates ignoring spaces inside strings.
This option is applied to all the columns according to which the deletion of duplicates is performed.
This option is useful for the arrays of character strings.
tccIgnorePonctuationAndSpaceDelete duplicates ignoring spaces and punctuation.
This option is applied to all the columns according to which the deletion of duplicates is performed.
This option is useful for the arrays of character strings.
tccIgnoreSpaceDelete duplicates ignoring the spaces at the beginning and at the end of strings.
This option is applied to all the columns according to which the deletion of duplicates is performed.
This option is useful for the arrays of character strings.
<Column>: Integer or character string
  • If a single column must be taken into account, subscript of the column that must be taken into account for the deletion of duplicates.
  • If several columns must be taken into account, list of columns that must be taken into account for the deletion of duplicates. The different columns must be separated by a semicolon.

Deleting the duplicates from a one-dimensional array of classes, structures or advanced types Hide the details

ArrayDeleteDuplicate(<WLanguage array> , <asMember> , <Members>)
<WLanguage array>: Array
Name of the Array variable to use. This array must be a one-dimensional array. This array can be an array of classes, structures or advanced types.
<asMember>: Constant
asMember: Constant used to handle a one-dimensional array of classes, structures or advanced types.
The asMember constant can be combined with one or more options for deletion:
tccIgnoreAccentDelete duplicates ignoring accents.
This option is applied to all the members according to which the deletion of duplicates is performed.
This option is useful for the "character string" members.
tccIgnoreCaseDelete duplicates ignoring case.
This option is applied to all the members according to which the deletion of duplicates is performed.
This option is useful for the "character string" members.
tccIgnoreInsideSpaceDelete duplicates ignoring spaces inside strings.
This option is applied to all the members according to which the deletion of duplicates is performed.
This option is useful for the "character string" members.
tccIgnorePonctuationAndSpaceDelete duplicates ignoring spaces and punctuation.
This option is applied to all the members according to which the deletion of duplicates is performed.
This option is useful for the "character string" members.
tccIgnoreSpaceDelete duplicates ignoring the spaces at the beginning and at the end of strings.
This option is applied to all the members according to which the deletion of duplicates is performed.
This option is useful for the "character string" members.
<Members>: Character string
Name of members used. If the deletion of duplicates is performed according to the value of several members, their names must be separated by semicolons.

Deleting duplicates in a one-dimensional array with a comparison procedure Hide the details

ArrayDeleteDuplicate(<WLanguage array> , <asFunction> , <WLanguage procedure>)
<WLanguage array>: Array
Name of the Array variable to use. This array must be a one-dimensional array.
This array can be an array of advanced types.
<asFunction>: Constant
asFunction: Constant used to handle a one-dimensional array with a sort procedure.
<WLanguage procedure>: Procedure name
WLanguage procedure in the following format:
PROCEDURE <Procedure name>(<Element1>, <Element2>)
This procedure is called automatically by the duplicate deletion mechanism. To remove duplicates, a temporary sorting is applied and the procedure then compares the elements two by two.
  • If element 1 and element 2 are not identical, the procedure must return 1.
  • If element 1 and element 2 are identical, the procedure must return 0.
Remark: The array is not sorted after the comparison procedure is executed.
Remarks
  • This function is not available for the fixed arrays.
  • This function can be used on the arrays of advanced variables.
  • Dynamic array of variants: Only a custom deletion (with a WLanguage procedure) can be used.
Business / UI classification: Neutral code
Component: wd280vm.dll
Minimum version required
  • Version 16
This page is also available for…
Comments
Exemplo ArrayDeleteDuplicate
// Vou mostrar como eliminar itens duplos no array

tabListanumeros is array of 0 int
ArrayAddLine(tabListanumeros,10)
ArrayAddLine(tabListanumeros,10)
ArrayAddLine(tabListanumeros,5)
ArrayAddLine(tabListanumeros,5)
ArrayAddLine(tabListanumeros,3)
ArrayAddLine(tabListanumeros,3)
EDT_Texto = ArrayToString(tabListanumeros)
//http://doc.windev.com/en-US/?1000019422&name=arraydeleteduplicate_function
// Elimina os Duplos no Array
ArrayDeleteDuplicate(tabListanumeros)
EDT_resultado = ArrayToString(tabListanumeros)
//Antes
//10
//10
//5
//5
//3
//3
//Depois
//10
//5
//3

// Blog com Video e Exemplo
http://windevdesenvolvimento.blogspot.com.br/2016/12/aula-994-windev-array-006.html
https://www.youtube.com/watch?v=s8BfjdlV13g
De matos
13 Dec. 2016