Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD 10] Lire un fichier HF 5.5

2 réponses
Avatar
Pascal F
Bonsoir,

Voila, je me casse la tête depuis deux heures (au moins) sur un problème qui me semblait ne pas devoir en être un.
En clientèle j'ai des anciens programmes en WD 5.5 utilisant une analyse HF 5.5.
Je suis en train de créer de nouveaux module dans un projet WD10, et utilisant HF Classic ou C/S.
Je veux faire une importation de certains fichiers du projet en 5.5 vers le projet en 10.

Je fais donc un
HDeclare(NomFichier,Repertoire_Complet_WDD_5.5,NomAlias)
hSubstRep(NomAlias,Repertoire_Donnees)
un HlisteCle(NomAlias) me permet de récupérer la clé unique de parcours du fichier et un HListeRubrique(NomAlias) me retrouve
bien toutes les rubriques de mon fichier.

Jusque là tout roule.

Mais dès que je fais un accès au fichier, je déclanche une exception 70050: Le fichier n'est pas au format HF 10, mais en 5.5 ou
inférieur.
Que ce soit un HOuvre, HlitPremier ou un HExecuteRequeteSQL.

Qu'est ce que j'oublie, ou bien n'est il pas possible de lire directement des fichier 5.5 sans faire de HImporteHF55 ?
Merci de vos lumières.

--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre

2 réponses

Avatar
smrhp
Pascal F avait soumis l'idée :
Bonsoir,

Voila, je me casse la tête depuis deux heures (au moins) sur un problème qui
me semblait ne pas devoir en être un.
En clientèle j'ai des anciens programmes en WD 5.5 utilisant une analyse HF
5.5.
Je suis en train de créer de nouveaux module dans un projet WD10, et
utilisant HF Classic ou C/S.
Je veux faire une importation de certains fichiers du projet en 5.5 vers le
projet en 10.

Je fais donc un
HDeclare(NomFichier,Repertoire_Complet_WDD_5.5,NomAlias)
hSubstRep(NomAlias,Repertoire_Donnees)
un HlisteCle(NomAlias) me permet de récupérer la clé unique de parcours du
fichier et un HListeRubrique(NomAlias) me retrouve bien toutes les rubriques
de mon fichier.

Jusque là tout roule.

Mais dès que je fais un accès au fichier, je déclanche une exception 70050:
Le fichier n'est pas au format HF 10, mais en 5.5 ou inférieur.
Que ce soit un HOuvre, HlitPremier ou un HExecuteRequeteSQL.



?? Pourtant je viens de faire un test par curiosité pour voir (car nous
utilisons régulièrement la lecture de fichier 5.5 depuis les versions
supérieures de windev, mais en intégrant l'analyse dans le projet
plutôt que via ce système de HDeclare) et ça fonctionne très bien...

ah en fait non, je n'avais pas suivi rigoureusement le même chemin que
toi. J'avais ajouté par habitude un "frepencours()" que nous utilisons
régulièrement en mode test pour lire des fichiers de données déjà
présent dans un autre répertoire. Il semblerait que celui-ci soit
indispensable pour lire ces fichiers 55 hors répertoire de l'exe. Ah et
en creusant un peu plus sans le frepencours() mais avec un :
hsubstrep("*",ton_chemin) ça fonctionne mais pas avec
hsubstrep("fichier",ton_chemin) !


En tout cas, je te confirme que c'est possible.
Avatar
Pascal F
smrhp avait prétendu :
Pascal F avait soumis l'idée :
Bonsoir,

Voila, je me casse la tête depuis deux heures (au moins) sur un problème qui me semblait ne pas devoir en être un.
En clientèle j'ai des anciens programmes en WD 5.5 utilisant une analyse HF 5.5.
Je suis en train de créer de nouveaux module dans un projet WD10, et utilisant HF Classic ou C/S.
Je veux faire une importation de certains fichiers du projet en 5.5 vers le projet en 10.

Je fais donc un
HDeclare(NomFichier,Repertoire_Complet_WDD_5.5,NomAlias)
hSubstRep(NomAlias,Repertoire_Donnees)
un HlisteCle(NomAlias) me permet de récupérer la clé unique de parcours du fichier et un HListeRubrique(NomAlias) me retrouve
bien toutes les rubriques de mon fichier.

Jusque là tout roule.

Mais dès que je fais un accès au fichier, je déclanche une exception 70050: Le fichier n'est pas au format HF 10, mais en 5.5
ou inférieur.
Que ce soit un HOuvre, HlitPremier ou un HExecuteRequeteSQL.



?? Pourtant je viens de faire un test par curiosité pour voir (car nous utilisons régulièrement la lecture de fichier 5.5
depuis les versions supérieures de windev, mais en intégrant l'analyse dans le projet plutôt que via ce système de HDeclare) et
ça fonctionne très bien...

ah en fait non, je n'avais pas suivi rigoureusement le même chemin que toi. J'avais ajouté par habitude un "frepencours()" que
nous utilisons régulièrement en mode test pour lire des fichiers de données déjà présent dans un autre répertoire. Il
semblerait que celui-ci soit indispensable pour lire ces fichiers 55 hors répertoire de l'exe. Ah et en creusant un peu plus
sans le frepencours() mais avec un :
hsubstrep("*",ton_chemin) ça fonctionne mais pas avec
hsubstrep("fichier",ton_chemin) !


En tout cas, je te confirme que c'est possible.



Bon alors j'ai fini par trouver la solution.
Dans le démarrage de mon projet, afin de choisir le type de base avec laquelle l'utilisateur veut travailler (HF Classic, HF C/S,
à terme MySql, MSSql), je décrit une connection avec HDecritConnexion(MaCnx,les parametres qui vont bien)
et puis ensuite je faisais

HChangeConnexion("*",MaCnx)

Et c'est là qu'est le problème. Tous les fichiers, même ceux déclarés plus tard sont attachés à cette connexion.
Il faut donc changer la connexion fichier par fichier.
Merci en tout cas des infos.

--
Pascal

Ne garder que le prénom pour me joindre