Message de rapport:
 

Re: maj structure fichiers temp. : stratégie...

Sujet: Re: maj structure fichiers temp. : stratégie...
par R&B sur 13/3/2003 12:23:33

ouaip C'est bien gentil mais à supposer qu'on ai supprimé des rubriques entre temps, que va dire le programme qui écrit ?

bon j'ai trouvé une solution mais je ne parvien pas à créer le fichier à partir de la nouvelle description... hcreation me prend l'ancienne description et donc ma nouvelle rubrique n'est pas crée.

en revanche dump/import sont ok

faire sauter la dernière desc de rubrique, lancer une fois
re-activeer la dernier rubrique et relancer...


// Cre Fichier temporaition
PROCEDURE _FIC_Cree()
// Crée un fichier temporaire en dynamique
dFic est une Description Fichier
dRub est une Description Rubrique
Abv est une chaîne = "CG"
cNomFic est une chaîne = "FIC_"+Abv
m_cRep est une chaine =frepencours()

dFic..Nom = cNomFic
dFic..Répertoire = m_cRep
dFic..Type = hFichierNormal

dRub..Nom = "ID"+cNomFic
dRub..Type = hRubIdAuto4
HDécritRubrique(dFic,dRub)

dRub..Nom = Abv+"_NUMERO"
dRub..Type = hrubEntier4
dRub..Taille = 3
dRub..TypeClé = hCléDoublon
HDécritRubrique(dFic,dRub)

//----- rubrique à masquer pour la première execution
dRub..Nom = Abv+"_RUB_VERSION2"
dRub..Type = hrubtexte
dRub..Taille = 30
dRub..TypeClé = hCléDoublon
HDécritRubrique(dFic,dRub)
//fin de rubrique à masquer pour la première execution -----

// Annule la déclaration précedemment faite
SI PAS HAnnuleDéclaration(cNomFic) ALORS Erreur(HErreur())
// Décrit le fichier temporaire
HDécritFichier(dFic)
// Si le fichier temporaire n'existe pas, le crée à vide
//HCréationSiInexistant(cNomFic)
cFicPhys est une chaîne = m_cRep+"\"+cNomFic+".fic"
SI fRep(cFicPhys,frFichier)<>"" ALORS
HVérifieStructure(cNomFic,hIdentique)
QUAND EXCEPTION DANS
RENVOYER HOuvre(cNomFic)
FAIRE
SI ExceptionInfo(errCode)<>70016 ALORS EXCEPTION
FIN


cFicDel est une chaîne = m_cRep+"\"+cNomFic+".*"
ctxt est une chaîne = m_cRep+"\"+cNomFic+"_.txt"
nfic est un entier
ssrc est une source de données
hdeclareexterne(cficphys,"ssrc")
// DUMP le fichier dans un txt
Sablier
nfic=fOuvre(ctxt,foCréation+foLectureEcriture)
SI nfic<>-1 ALORS
POUR TOUT ssrc
fEcritLigne(nfic,HRécupèreEnregistrement(ssrc,";"))
FIN
fFerme(nfic)
FIN
HFerme(ssrc)
HAnnuleDéclaration(ssrc)
// supprime le fichier physique
fSupprime(cFicDel,frLectureSeule)
// crée le fichier avec nouvelle structure
// c la que ca merdoie

HCréation(cNomFic)
Info("nouvelle structure "+HListeRubrique(cNomFic))
// re-importe les données
HImporteTexte(cNomFic,ctxt,cListeRub,";"+Caract(127)+""""+Caract(127)+RC,hImpSansDélimiteur)
fSupprime(ctxt)
HOuvre(cNomFic)
Sablier(Faux)
RENVOYER Vrai
SINON
RENVOYER HCréationSiInexistant(cNomFic)
FIN


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