[Résolu] Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
02/05/2006 15:41
Post(s): 14
salut

je recupere d'un fichier texte des produits, des ref etc
mais j'ai un soucie avec les doublons quand j'écris dans mon fichier HF car les produits existe deja donc message d'erreur comme quoi j'ai un doublon. J'ai essayé Hgeredoublon mais je dois mal l'utiliser car j'ai tjs et encore ce message. Es que quelqu'un peut m'expliqué son bon fonctionnement.

Merci

Contribution le : 16/06/2006 10:15

Edité par drcharly93 sur 23/6/2006 11:49:00
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Pour chaque produit à rentrer il faut d'abord tester si il n'existe pas.
Mon fichier est composé de
Nom Type Taille Cle
==================================================
ar_IdArticle IdAuto CleUnique
ar_CodeArticle Texte 20 Cle avec doublon
ar_Designation Texte 50 Cle avec doublon

Dans la déclaration de ma fenetre, on déclare une structure
StructureArticle est une structure
 Code est une chaine
 Designation est une chaine
 //Renseigner ici si d'autre membre
Fin

sFichier est une chaine = "Article"
sCleParcours est une chaine = "ar_CodeArticle"
sUneLigne est une chaine

st est un StructureArticle
BOUCLE
  sUneLigne = GetLigne(st)  //Proc pour récupérer chaque ligne
                          //Cette procedure rempli la structure st
  Si sUneLigne = EOT alors Sortir
   
  Si HlitRecherche(sFichier, sCleParcours, st:Code) Alors
    //On traite ici en mode modification
    // ....
    //Mise a jour des reubrique du fichier
    {sFichier + ".ar_Designation"} = st:Designation
    //....
    HModifie(sFichier)
  Sinon
    //en mode ajout d'article
    // Faire les affectations
    {sFichier + ".ar_CodeArticle"} = st:Code
    {sFichier + ".ar_Designation"} = st:Designation
 
  HAjoute(sFichier)
  Fin
Fin

Contribution le : 16/06/2006 19:16
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
02/05/2006 15:41
Post(s): 14
je me suis inspiré de ce que tu m'as données mais j'ai un PB. au bout de la troisieme ligne de mon fichier le programme plante. il me dit que la ligne que je viens de lire est égal à la toute premiere ligne de mon fichier alors que ce n'est pas vrai.qd il me dit ca, il rentre dans la boucle pour Hajoute puis plante avec une erreur de doublon. QUE FAIRE ????



//gere doublon
HLitRecherche(Produit,RefProduit,Produit.RefProduit)
SI HTrouve() ALORS
HModifie(Produit)

SINON
HAjoute(Produit)


// HModifie(Produit)
FIN //gere doublon

Contribution le : 21/06/2006 14:14
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
02/05/2006 15:41
Post(s): 14
je viens de me rendre compte d'un truc, si j'integre mon fichier dans ma base HF sans s'occupé de tout ce qui est doublon il n'y a pas de PB. qd je vais voir mon fichier HF , j'ai une Num d'enregistrement qui est un peu alléatoire alors que si je rentre mon fichier avec la gestion des doublon mon num d'enregistrement est de 1 à 99999. Si apres avoir remplit mon fichier comme ca je teste la gestion des doublon alors la la gestion des doublon marche nikel. En gros si le fichier existe deja dans ma base HF magestion des doublon est OK sinon pas bon

Merci bcp d'avance

Contribution le : 21/06/2006 14:34
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Difficile à comprendre:

le programme trouve l'enregistrement mais passe quand meme dans le bloc HAjoute() ????
Alors que les contenus sont différents ????

Bien trops d'erreurs en si peu d'instructions

Utiliser le debuggeur et analyser les contenus quelque chose devrait vous interpeller.

Contribution le : 22/06/2006 10:33
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
23/12/2002 12:21
Post(s): 16
//gere doublon
HLitRecherche(Produit,RefProduit,Produit.RefProduit)
SI HTrouve() ALORS
HModifie(Produit)

SINON
HAjoute(Produit)


// HModifie(Produit)
FIN //gere doublon


HLitRecherche(Produit,RefProduit,Produit.RefProduit)

Ce code ne peut pas fonctionner.
Tu recherche toujours le même enregistrement

Contribution le : 22/06/2006 14:16
_________________
La perfection n'a pas de limite.
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
DSI WDF
Inscrit:
13/02/2006 16:52
Post(s): 266
Bien vu NC !!!!!

Contribution le : 23/06/2006 07:48
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
02/05/2006 15:41
Post(s): 14
alors voila le code que justilise pour renplir mon fichier HF. je lis mon fichier texte, j'extrais s'il connait alors modifie sinnon hajoute. sauf qu'à la 4eme ligne de mon fichier texte, il trouve pas la ligne dans mon HF donc Hajoute mais la il plante et me dit qu'il y a un doublon avec le premier enregistrement de mon fichier HF. PKKKKKK??????????????

merci d'avance

Produit.RefProduit = SansEspace(Gauche(sRes,26))
Produit.Designation = Milieu(sRes,26,25)
Produit.Prix = Droite(sRes,6)

//gere doublon
HLitRecherche(Produit,RefProduit,Produit.RefProduit)
SI HTrouve() ALORS
HModifie(Produit)

SINON
HAjoute(Produit)
// Produit.RefProduit = ""


// HModifie(Produit)
FIN //gere doublon


// HAjoute(Produit) //avant modif
sRes = fLitLigne(nEntfic)
sRes1 = fLitLigne(nEntfic1)

Contribution le : 23/06/2006 09:30
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
DSI WDF
Inscrit:
13/02/2006 16:52
Post(s): 266
Essaye d'utiliser HLitRecherchePremier au lieu de
HLitRecherche

Cela pourra peut être solutionner car cette fonction permet de charger en mémoire les données, et c'est peut être cela qui te fais tout planter !!!

Tiens au courant !!

Contribution le : 23/06/2006 10:09
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Developpeur WDF
Inscrit:
18/06/2006 13:54
Post(s): 106
Euh..

Tu recherches toujours le même enregistrement comme l'a mentionné NC.

Je sais pas ce que tu veux faire mais à tout hasard ca pourra peut être t'aider. Mais il faut assigner des valeurs aux rubriques que tu veux modifier ou ajouter.


Je présumes que tu dois être dans une boucle :
ProdRefprod, ProdDesign, ProdPrix sont chaines

// On lit les lignes des fichiers 
sRes = fLitLigne(nEntfic)
sRes1 = fLitLigne(nEntfic1)

// On assigne aux variables de recherche 
// les valeurs des chaines extraites
ProdRefprod = SansEspace(Gauche(sRes,26))
ProdDesign = Milieu(sRes,26,25)
ProdPrix = Droite(sRes,6)

// On recherche si la valeur extraite 
// de la ligne lue apparait dans le fichier
HLitRecherchePremier(Produit,RefProduit,ProdRefprod)
SI HTrouve() ALORS
// Je sais pas ce qu'on modifie mais on le modifie.. oO
HModifie(Produit)

SINON
// Je sais pas ce qu'on ajoute mais on l'ajoute.. oO
HAjoute(Produit)

FIN 


Petite précision:
Quand tu assigen des valeurs aux rubriques comme là :
Produit.RefProduit = SansEspace(Gauche(sRes,26))
Produit.Designation = Milieu(sRes,26,25)
Produit.Prix = Droite(sRes,6)
Elles ne sont reellement "écrites" qu'après un Hajoute, Hmodifie, sinon avant, elles sont dans une zone temporaires, donc pas écrite dans le fichier.

Contribution le : 23/06/2006 10:30

Edité par Kaer sur 23/6/2006 10:46:28
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
DSI WDF
Inscrit:
13/02/2006 16:52
Post(s): 266
En effet avant de faire tes hajoute ou hmodifie, il faut que tu paramètre les données à enregsitrer !!!

MonFichier.Champ1 = ProdRefprod
MonFichier.Champ2 = ProdDesign
MonFichier.Champ3 = ProdPrix

HAjoute(...) ou HModifie(...)

Déjà cela pourrait mieux marcher comme le signifie KAER

Contribution le : 23/06/2006 10:38
Créer un fichier PDF de la contribution Imprimer


Re: Gerer les doublon dans fichier HyperFile
Stagiaire WDF
Inscrit:
02/05/2006 15:41
Post(s): 14
tu avais raison KAER, il faut d'abort faire la recherche sur le fichier HF et apres seulement s'il le trouve ou pas faire l'enregistrement dans le fichier.

Voila le code qui marche

pref pdes pprix sont de chaines

pref = SansEspace(Gauche(sRes,26))
pdes = Milieu(sRes,26,25)
pprix = Droite(sRes,6)




//test est une chaine = Produit.RefProduit
//gere doublon
HLitRecherchePremier(Produit,RefProduit,pref)
SI HTrouve() ALORS
Produit.RefProduit = pref
Produit.Designation = pdes
Produit.Prix = pprix
HModifie(Produit)

SINON
Produit.RefProduit = pref
Produit.Designation = pdes
Produit.Prix = pprix
HAjoute(Produit)
// Produit.RefProduit = ""


// HModifie(Produit)
FIN

Contribution le : 23/06/2006 11:05
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2