array_del supporte ignoreCase
bug dans le filtrage des champs
This commit is contained in:
parent
c39b145391
commit
caa47fd12f
13
lib/ulib/awk
13
lib/ulib/awk
|
@ -96,10 +96,12 @@ array_deli(dest, i)
|
||||||
Cette fonction assume que les indices du tableau commencent à 1 et n'ont pas
|
Cette fonction assume que les indices du tableau commencent à 1 et n'ont pas
|
||||||
de \"trous\". Si i==0, cette fonction est un NOP.
|
de \"trous\". Si i==0, cette fonction est un NOP.
|
||||||
|
|
||||||
array_del(dest, value)
|
array_del(dest, value[, ignoreCase])
|
||||||
Supprimer *tous* les éléments du tableau dest dont la valeur est value. Les
|
Supprimer *tous* les éléments du tableau dest dont la valeur est value. Les
|
||||||
indexes des valeurs sont trouvées avec key_index(), puis les valeurs sont
|
indexes des valeurs sont trouvées avec key_index(), puis les valeurs sont
|
||||||
supprimées avec array_deli()
|
supprimées avec array_deli()
|
||||||
|
ignoreCase permet de spécifier que la recherche de la valeur se fait en
|
||||||
|
ignorant la casse.
|
||||||
|
|
||||||
array_extend(dest, src)
|
array_extend(dest, src)
|
||||||
Ajouter les éléments de src dans dest, en commençant avec l'index
|
Ajouter les éléments de src dans dest, en commençant avec l'index
|
||||||
|
@ -407,8 +409,9 @@ function ogeth(field, nbfields, i) {
|
||||||
if (field >= 1 && field <= nbfields) return field
|
if (field >= 1 && field <= nbfields) return field
|
||||||
else return 0
|
else return 0
|
||||||
}
|
}
|
||||||
|
field = tolower(field)
|
||||||
for (i = 1; i <= nbfields; i++) {
|
for (i = 1; i <= nbfields; i++) {
|
||||||
if (tolower(ORIGHEADERS[i]) == tolower(field)) {
|
if (field == tolower(ORIGHEADERS[i])) {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -581,14 +584,14 @@ function build_skipfs(keepfields, skipfields, skipfs, addfs, keepfs, kee
|
||||||
}
|
}
|
||||||
split(skipfields, tmpfields, /,/)
|
split(skipfields, tmpfields, /,/)
|
||||||
for (i in tmpfields) {
|
for (i in tmpfields) {
|
||||||
array_del(keepfs, tmpfields[i])
|
array_del(keepfs, tmpfields[i], 1)
|
||||||
}
|
}
|
||||||
keepfs_count = length(keepfs)
|
keepfs_count = length(keepfs)
|
||||||
# puis construire la liste des champs à supprimer dans skipfs
|
# puis construire la liste des champs à supprimer dans skipfs
|
||||||
headers_count = length(HEADERS)
|
headers_count = length(HEADERS)
|
||||||
for (i = 1; i <= headers_count; i++) {
|
for (i = 1; i <= headers_count; i++) {
|
||||||
field = HEADERS[i]
|
field = HEADERS[i]
|
||||||
if (!in_array(field, keepfs)) {
|
if (!in_array(field, keepfs, 1)) {
|
||||||
fieldi = geth(field)
|
fieldi = geth(field)
|
||||||
if (i != 0) array_add(skipfs, fieldi)
|
if (i != 0) array_add(skipfs, fieldi)
|
||||||
}
|
}
|
||||||
|
@ -597,7 +600,7 @@ function build_skipfs(keepfields, skipfields, skipfs, addfs, keepfs, kee
|
||||||
# puis construire la liste des champs à ajouter dans addfs
|
# puis construire la liste des champs à ajouter dans addfs
|
||||||
for (i = 1; i <= keepfs_count; i++) {
|
for (i = 1; i <= keepfs_count; i++) {
|
||||||
field = keepfs[i]
|
field = keepfs[i]
|
||||||
if (!in_array(field, HEADERS)) {
|
if (!in_array(field, HEADERS, 1)) {
|
||||||
array_add(addfs, field)
|
array_add(addfs, field)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2130,9 +2130,9 @@ function array_deli(dest, i, l) {
|
||||||
}
|
}
|
||||||
delete dest[l]
|
delete dest[l]
|
||||||
}
|
}
|
||||||
function array_del(dest, value, i) {
|
function array_del(dest, value, ignoreCase, i) {
|
||||||
do {
|
do {
|
||||||
i = key_index(value, dest)
|
i = key_index(value, dest, ignoreCase)
|
||||||
if (i != 0) array_deli(dest, i)
|
if (i != 0) array_deli(dest, i)
|
||||||
} while (i != 0)
|
} while (i != 0)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue