OVH Cloud OVH Cloud

wd8 réindexation

7 réponses
Avatar
Miles Davis
bonjour à tous,
je cherche, par programmation et via le menu principal, à réindexer tous
les fichiers liés à l'analyse de mon application, même en cas d'évolution
de ladite analyse, mais je ne trouve pas de fonction capable de réaliser
ceci, un peu comme HCréationSiInexistant("*").

avez-vous une idée ?
merci d'avance et bonne journée
miles

ps : je préfère ne pas utiliser LanceAppli("C:\MonRépertoire
\WDOptimiseur.EXE /Fic=C:\MonAppli\Données")

7 réponses

Avatar
Eric Laurent
Après mure réflexion, Miles Davis a écrit :
bonjour à tous,
je cherche, par programmation et via le menu principal, à réindexer tous
les fichiers liés à l'analyse de mon application, même en cas d'évolution
de ladite analyse, mais je ne trouve pas de fonction capable de réaliser
ceci, un peu comme HCréationSiInexistant("*").

avez-vous une idée ?
merci d'avance et bonne journée
miles

ps : je préfère ne pas utiliser LanceAppli("C:MonRépertoire
WDOptimiseur.EXE /Fic=C:MonAppliDonnées")



Bonjour,
J'ai réalisé une fonction "VerifieIndex" que j'appelle en début de
programme.
La voici:
//-------------------------------------------------
VerifieIndex(Auto=Vrai)

FichAnalyse est une chaîne=HListeFichier()
FichierVerifie est une chaîne
Rang est un entier=1

FichierVerifie=ExtraitChaîne(FichAnalyse,Rang,RC)
TANTQUE FichierVerifie<>EOT
SI HFichierExiste(FichierVerifie) ALORS
SI Auto ALORS
SI HVérifieIndex(FichierVerifie)=1 ALORS
SI PAS HRéindexe(FichierVerifie,hVérifieMémo+hNdxNormal+hNdxMuet)
ALORS
SI PAS
HRéindexe(FichierVerifie,hVérifieMémo+hNdxSuppression+hNdxMuet) ALORS
Erreur("Problème de réindexation du fichier "+FichierVerifie+" :
"+HErreurInfo())
FIN
FIN
FIN
SINON
SI PAS HRéindexe(FichierVerifie, hVérifieMémo,
Handle(FenEnExécution())) ALORS
SI PAS HRéindexe(FichierVerifie, hVérifieMémo+hNdxSuppression,
Handle(FenEnExécution())) ALORS
Erreur("Problème de réindexation du fichier "+FichierVerifie+" :
"+HErreurInfo())
FIN
FIN
FIN
FIN
Rang++
FichierVerifie=ExtraitChaîne(FichAnalyse,Rang,RC)
FIN
//-------------------------------------------------

Cordialement,

--
Eric Laurent

(enlever nospam.)
Avatar
Romain PETIT
Eric Laurent a formulé la demande :

J'ai réalisé une fonction "VerifieIndex" que j'appelle en début de programme.



Bonjour,

il me semble que je faisais ça au début en WD7.5.
J'avais abandonné car sur des gros fichier, ça mettait un temps
interminable.
Ca avait eté amélioré en 8 et sup ?

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Miles Davis
> Bonjour,
J'ai réalisé une fonction "VerifieIndex" que j'appelle en début de
programme.
La voici:



comment te remercier ?
en le disant : merci éric ;-)
bon après-midi
Avatar
Emmanuel Haefele
"Romain PETIT" a écrit:

Bonjour Romain,

il me semble que je faisais ça au début en WD7.5.
J'avais abandonné car sur des gros fichier, ça mettait un temps
interminable.
Ca avait eté amélioré en 8 et sup ?



En 9 en tout les cas c'est resté pareil, chaque rubrique indexée est
reparcourue sur la totalité du fichier, donc x parcours par fichier. En 10
je ne sais pas mais je ne vois pas pourquoi ça aurait changé.


Amicalement,

Emmanuel Haefelé.
Avatar
mat
Emmanuel Haefele wrote:
...
En 9 en tout les cas c'est resté pareil, chaque rubrique indexée est
reparcourue sur la totalité du fichier, donc x parcours par fichier. En 10
je ne sais pas mais je ne vois pas pourquoi ça aurait changé.



...


Bonjour,

ceci est rapide (code un peu abrégé).

Salutations
Mat



vFileList est chaîne=HListeFichier
vFileList = Remplace(vFileList, RC, ",")
gpMaintFiles(vFileList)


PROCEDURE gpMaintFiles(vFiles, vFldName = "winMessage.txtRec" )
vFileName, vExcludeFiles is string
POUR i = 1 A ChaîneOccurrence(vFiles,",") + 1
vFileName = ExtraitChaîne(vFiles,i,",")
SI PAS HFichierExiste(vFileName) ALORS CONTINUER
HRéindexe(vFileName,hNdxNormal+hNdxSuppression+hNdxCompactage)
Multitâche
FIN
Avatar
Romain PETIT
mat a écrit :

ceci est rapide (code un peu abrégé).



Donc tu réindexes systématiquement tous tes fichiers ?
Même pour les très gros fichiers ?

Pourquoi pas, mais alors à quoi sert HVerifieIndex() qui prend
visiblement autant de temps que de réindexer...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
mat
Romain PETIT wrote:
mat a écrit :

ceci est rapide (code un peu abrégé).



Donc tu réindexes systématiquement tous tes fichiers ?
Même pour les très gros fichiers ?

Pourquoi pas, mais alors à quoi sert HVerifieIndex() qui prend
visiblement autant de temps que de réindexer...

A+



>


Salut Romain,

non, ma procédure de re-indexation est générique. la réindexation de
tous les fichiers y est pour usage après les mises à jour des DLL HF car
sinon rien ne change au niveau accès fichier. Par contre, ce que je fais
tous les jours, je ré-indexe quelques fichiers, lundi les commandes,
mardi les stocks, mercredi les mouvements sur stock, etc. Mes clients
ont généralement de fichiers de quelques MB à quelques dizaines de MB et
cette maintenance journalière se termine très rapidement. Au même temps,
avant cela, je fais une copie du fichier ce qui donne encore un peu de
sécurité au cas de pépins (jamais eu lieu pour l'instant). En ce qui
concerne hVerifieIndex il faut demander PC Soft. Faut pas oublier que
certaines fonctions datent d'époques où le matériel était moins puissant
qu'aujourd'hui.

Salutations
mat