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
 | 
			
		||||
    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
 | 
			
		||||
    indexes des valeurs sont trouvées avec key_index(), puis les valeurs sont
 | 
			
		||||
    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)
 | 
			
		||||
    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
 | 
			
		||||
    else return 0
 | 
			
		||||
  }
 | 
			
		||||
  field = tolower(field)
 | 
			
		||||
  for (i = 1; i <= nbfields; i++) {
 | 
			
		||||
    if (tolower(ORIGHEADERS[i]) == tolower(field)) {
 | 
			
		||||
    if (field == tolower(ORIGHEADERS[i])) {
 | 
			
		||||
      return i
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -581,14 +584,14 @@ function build_skipfs(keepfields, skipfields, skipfs, addfs,         keepfs, kee
 | 
			
		||||
  }
 | 
			
		||||
  split(skipfields, tmpfields, /,/)
 | 
			
		||||
  for (i in tmpfields) {
 | 
			
		||||
    array_del(keepfs, tmpfields[i])
 | 
			
		||||
    array_del(keepfs, tmpfields[i], 1)
 | 
			
		||||
  }
 | 
			
		||||
  keepfs_count = length(keepfs)
 | 
			
		||||
  # puis construire la liste des champs à supprimer dans skipfs
 | 
			
		||||
  headers_count = length(HEADERS)
 | 
			
		||||
  for (i = 1; i <= headers_count; i++) {
 | 
			
		||||
    field = HEADERS[i]
 | 
			
		||||
    if (!in_array(field, keepfs)) {
 | 
			
		||||
    if (!in_array(field, keepfs, 1)) {
 | 
			
		||||
      fieldi = geth(field)
 | 
			
		||||
      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
 | 
			
		||||
  for (i = 1; i <= keepfs_count; i++) {
 | 
			
		||||
    field = keepfs[i]
 | 
			
		||||
    if (!in_array(field, HEADERS)) {
 | 
			
		||||
    if (!in_array(field, HEADERS, 1)) {
 | 
			
		||||
      array_add(addfs, field)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -2130,9 +2130,9 @@ function array_deli(dest, i,                 l) {
 | 
			
		||||
  }
 | 
			
		||||
  delete dest[l]
 | 
			
		||||
}
 | 
			
		||||
function array_del(dest, value,              i) {
 | 
			
		||||
function array_del(dest, value, ignoreCase,              i) {
 | 
			
		||||
  do {
 | 
			
		||||
    i = key_index(value, dest)
 | 
			
		||||
    i = key_index(value, dest, ignoreCase)
 | 
			
		||||
    if (i != 0) array_deli(dest, i)
 | 
			
		||||
  } while (i != 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user