Page 1 sur 1

[R] Lire dans deux colones d'un tableau

Posté : mar. 25 juin 2019 14:51
par EdenGuegn
Bonjour, j'ai une question a vous poser à propos d'un tableau. Le tableau est constitué de plusieurs lignes et plusieurs colonnes, les données sont des noms/prénom/date de naissance importées d'un .csv . Ce tableau est constitué ainsi
Col 0 --> nom
Col 1 --> prénom
Col 2 --> Date de naissance
Col 3 --> Numéro client

+ J'ai dans un _ArrayDisplay un tableau à plusieurs ligne et plusieurs colonnes. En saisissant un nom dans la première colonne j'arrive à savoir si j'ai ce nom dans la liste. Mais le problème c'est que je n'arrive pas à savoir si j'en ai plusieurs avec ce nom là. J'aimerai savoir si il était possible de faire une recherche en prenant en compte les deux premières colonnes, par exemple si je veux chercher si Dupont Pierre est dans la liste je voudrais saisir DUPONT PIERRE et qu'il m'affiche le résultat.

Voici mon code:

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.12.0
 Auteur:         Cyber 1

 Fonction du Script :
	Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)

#include <String.au3>
#include <Array.au3>

;Appel de la fonction pour mettre dans un tableau
Local $s = FileRead("C:\Users\Cyber\Desktop\essai.csv")
Local $test = toArrayCsv($s)
;Fin de l'appel

_ArrayDisplay($test, "Liste des noms")
Local $sSearch = InputBox("Rechercher le nom", "Quel nom cherchez vous?")
If @error Then Exit

$sColumn=0

Local $iIndex = _ArraySearch($test, $sSearch, 0, 0, 0, 1, 1, $sColumn)
   If @error Then
	   MsgBox($MB_SYSTEMMODAL, "Pas trouvé", '"' & $sSearch & ' ce nom n''existe pas dans notre liste .')
	Else
	   $iIndex= $iIndex + 1
	   MsgBox($MB_SYSTEMMODAL, "Trouvé", '"'& $sSearch & '" a été trouvé dans le tableau à la ligne '& $iIndex & 'dans la première colonne.')
   EndIf


;Fonction pour mettre info du csv dans un array
Func toArrayCsv($s)
    Local $line = StringSplit($s,@CRLF,2+1) ; combien de ligne de mon fichier <> tableau
    Local $maxCol = 1 ; nombre de colonne de depart
    Local $a[UBound($line)][$maxCol] ; je crée un tableau de n ligne et de 1 colonne que je modifierai a ma guise
    For $i = 0 To UBound($line)-1 ; parcours toute les lignes
        Local $tmp = StringSplit($line[$i],";",3) ; combien de colonne pour la ligne n°i
        If(UBound($tmp) > $maxCol ) then $maxCol = UBound($tmp) ; pour connaitre le nombre de colonne
        ReDim $a[UBound($line)][$maxCol] ; je redimensionne mon tableau au bonne dimension
        For $j = 0 To UBound($tmp)-1 ; je parcours cellule par cellule "de gauche a droite"
            $a[$i][$j] = $tmp[$j] ; je remplit chaque cellule
        Next
    Next
    Return $a
EndFunc
;Fin fonction pour mettre info du csv dans un array

Re: Lire dans deux colones d'un tableau

Posté : mer. 26 juin 2019 14:09
par mikell
Sujet déplacé dans l'Aide Générale

Poster le fichier csv serait une très bonne idée...

Re: Lire dans deux colones d'un tableau

Posté : jeu. 27 juin 2019 14:05
par EdenGuegn
Merci de ta réponse. J'ai finalement réussi ce que je voulais faire mais merci quand même