[R] Filtre multiple sur un tableau

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

[R] Filtre multiple sur un tableau

#1

Message par Yogui »

Bonjour à tous

Ma problèmatique du jour est la suivante :

J'ai un fichier log (radius) qui comprend plus de 200 000 lignes que j'aimerai exploiter le plus finement possible.

et pour gagner du temps en utilisant des tableaux

j'utilise la fonctione _ArrayFileToArray pour mettre mon fichier log dans un tableau (ce qui prend plus d'une minute) puis j'aimerai faire des filtres sur ce tableau sur 4 colonnes (IP borne, Mac adresse portable, session utilisateur, date connexion) par des combo box pré remplis suite à un parsage du tableau.

Je n'ai pas de problème pour faire un filtre (exemple afficher les lignes du tableau dans un ListView si la date de connexion est = date du jour)

Par contre je n'arrive pas à filtrer le tableau sur plus d'un seul filtre.

exemple les portable connecter aujourd'hui sur la borne 192.168.13.2

Y a t il une solution autre que de faire plusieurs SI imbriquer.

(sachant que mon tableau à plus de 200 000 lignes et plus de 50 colonnes)

Pour vous donner une idée de ce que je veux faire je vous donne le code de la GUI :
► Afficher le texte
J'ai tenter de mettre le résultat de mon premier filtre dans un tableau "temporaire" pour appliquer le second puis le troisième mais le temps de réponse et surtout la mémoire utilisé est beaucoup trop important

Je suis prenneur de vos réponses ou simplement de vos Idées sinon je me taperai les si imbriqué :)
Modifié en dernier par Yogui le mar. 29 déc. 2009 20:32, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#2

Message par timmalos »

J'ai bien une petite idée que j'utilise assez souvent des qu'il s'agit de gros fichiers. Votre opération semble devoir s'effectuer assez souvent, je serai donc partisan de passer par une autre methode : la bdd
Si votre fichier texte est bien concu, il est facile de faire un programme qui le lit ligne par ligne et qui envoie l'information dans une Basse de Donnée Mysql ou Oracle. Le mecanisme peut etre un peu long, mais l'avantage sera enorme lors de chaque demande d'information. On supprime apres chaque mise en BDD la ligne afin de pouvoir recommencer si interruption.

Ensuite on fait un programme tout simple avec du SQL qui permet des SI imbriqués tres rapides et de multiples options de recherches. (Par exemple, cherchez tous les IPS et le nombre de connexion pour chaque IP (GROUP BY) qui ne sont pas dans le domaine autoitscript.fr (NOT IN) ayant un Numéro egal à (HAVING)


La recherche sera beaucoup plus rapide que de passer par une lecture du fichier texte en permanence, mais l'upload peut etre un peu long si il n'est pas automatisé.

C'est une solution que je propose ;)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#3

Message par Yogui »

En fait j'ai oublier de préciser un détail qui à son importance les fichiers exploiter sont ceux de j - 1

Pour l'exploitation en ligne j'utilise le protocole SNMP en intérogeant les bornes directement donc les fichiers sont exploiter afin de localiser des problemes de fond (portable qui ne se connecte pas à la bonne borne) et des problème d'utilisation tel portable est entre la borne tant et tant (mes utilisateurs ne sont pas vraiment respectueux des consignes et ont tendance à prendre des portables dans leurs bureaux ...) Pour rappel je m'occupe de l'informatique d'un hopital les portables sont normalement réservé aux soins .
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#4

Message par timmalos »

Donc ma solution n'est pas envisageable?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#5

Message par Yogui »

Si sans problème juste qu'elle est radical une fois le fichier chargé dans un array (ce qui prend dans les deux minutes) les filtres sont rapides mon problème est surtout de faire des "cumules" de filtres

Et autre problème c'est que le fichier est mal fait ... (proxim ...) ou alors je n'ai pas compris sa logique (possible aussi)

je vais regarder pour en faire une base de données
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#6

Message par timmalos »

Sinon t'aurait toujours la solution d'une regexp pour le filtre, en mettant | pour 'OU' c'est comme ca que j'avais fait sur mon site pour rechercher une information avec de multiples criteres (Par exemple, si pas de Guillemet et un ESPACE alors on faisait un OU, etc...)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Filtre multiple sur un tableau

#7

Message par Yogui »

j'ai fini par faire un premier filtre mettre le tableau résultat en mémoire et autoriser un second filtre et ainsi de suite pour finir ce choix est un bon compromis et surtout c'est la demande des utilisateurs donc puisque ça m'arrage je ne vais pas aller contre
Répondre