|
| lecture csv petit problème |
| Iniciado por Max, 15,ago. 2019 16:55 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 40 mensajes |
|
| Publicado el 15,agosto 2019 - 16:55 |
Bonjour,
Je gère des cartes Sim avec des numéros IMSI. Dans un champ table (table_import), j'ai une liste de numéros IMSI à 15 caractères. Dans un fichier csv (mcc.csv), j'ai dans une 1ere colonne les 5 caractères(mcc+mnc) des opérateurs mondiaux et dans une 2ème colonne le nom de l'opérateur associé, en 3 le pays. Quand je clique sur une ligne de ma table, je veux que ca aille lire dans le csv. Le fonctionnement, regarder dans la 1ere colonne du csv et quand cela trouve la valeur = au 5 premier caractères de ma colonne IMSI de ma table, cela me renvoie le nom de l'operateur dans un libelle (ch_operateur). Le code ci-dessous fonctionne à merveille sauf dans le cas ou je clique sur une ligne où les 5 premiers caractères ne sont pas trouvés dans le csv. Normal, je ne l'ai pas géré car je ne sais pas comment faire. 3 possibilité donc: 1) Trouvé, donc cela renvoie l'opérateur -> ok 2) Dans le champ IMSI de ma table, je n'ai pas d'ISMI mais N/A -> ok 3) Les 5 premiers caractères de mon IMSI n'ont pas été trouvés dans le csv, doit effacer le contenu du champ (ch_operateur) et c'est là que je "merde" Merci pour votre aide
nNumFichier est un entier sLigneLue est une chaîne NomCheminFichier est une chaîne Ref_IMSI est une chaîne
// Sélection du nom et du chemin du fichier NomCheminFichier =fRepEnCours()+"\"+"mcc.csv"
// Ouverture du fichier nNumFichier = fOuvre (NomCheminFichier, foLecture)
SI nNumFichier <> -1 ALORS sLigneLue = fLitLigne(nNumFichier) // Lecture de la ère ligne TANTQUE sLigneLue <> EOT // Test de la fin de fichier Ref_IMSI=ExtraitChaîne(sLigneLue,1,";") // Traitement de la ligne SI Gauche(table_import.IMSI,5)=Ref_IMSI ALORS ch_operateur=(ExtraitChaîne(sLigneLue,2,";"))+" "+(ExtraitChaîne(sLigneLue,3,";")) SINON SI table_import.IMSI="N/A" ALORS ch_operateur="Correspondance non trouvée" FIN // Lecture de la ligne suivante sLigneLue = fLitLigne(nNumFichier) FIN fFerme(nNumFichier) SINON Info("Le fichier mcc.csv n'existe plus...") FINMensaje modificado, 15,agosto 2019 - 17:14 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 16,agosto 2019 - 10:27 |
Hello,
Ce petit bout de code devrait t'aider, à adapter :
sTexte est une chaîne = fChargeTexte(sCheminCSV) vcLigneCSV est composée de sMCC est une chaine sur 5 sOperateur est une chaîne sPays est une chaîne FIN
POUR TOUTE chaîne sLigne de sTexte SEPAREE PAR RC vcLigneCSV.sMCC = ExtraitChaîne(sLigne,1,";") vcLigneCSV.sOperateur = ExtraitChaîne(sLigne,2,";") vcLigneCSV.sPays = ExtraitChaîne(sLigne,3,";") SI Gauche(table_import.IMSI,5)=vcLigneCSV.sMCC ALORS ch_operateur= vcLigneCSV.sOperateur+" "+vcLigneCSV.sPays RENVOYER Vrai FIN FIN
|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 40 mensajes |
|
| Publicado el 16,agosto 2019 - 11:11 |
Bonjour François, un grand merci, ton code fonctionne à merveille Bonne journée |
| |
| |
| | | |
|
| | | | |
| | |
|