Bonjour à tous,
j'essais depuis des heure d'utiliser la fonction HModifieStructure , ça ne marche pas!
J'explique mon problème.
Il m'arrive de mettre à jour certains fichiers de l'analyse HF classic. (Ex: ajout d'une nouvelle rubrique)
Dans ce cas, je régénère l'application (APK) puis je la réinstalle au niveau des appareils mobiles (android)
Je dois aussi, pour chaque appareil, faire passer les fichier fic concernés à l'outils WDmodfic afin de mettre à jour leurs structures. Cette tâche est très fastidieuse car les tablettes sont dispersées géographiquement.
Je voudrai donc rendre l'utilisateur plus autonome, il télécharge la nouvelle version depuis un serveur, puis dans le cas il où il y aurait une modification des structures elles se mettent à jour de manière automatique.
Et si je ne me trompe pas, la fonction HModifieStructure est faite pour ça!
Cependant, j'ai beau essayé toutes les solutions trouvées sur ce forum à ce problème je n'y parviens pas :
à l'initialisation du projet, je change l'emplacement du fichier Parametr.FIC à l'aide de hchangerep
ensuite je fais appel à la fonction HModifieStructure avec chemin de sauvegarde ou sans, que je ferme le fichier ou pas, le résultat est le même, j'obtiens l'erreur :
VOUS AVEZ APPELE LA FONCTION HMODIFIESTRUCTURE. IMPOSSIBLE DE RENOMMER /sdcard/locdata/BDD-HF/parametr.fic en /sdcard/locdata/BDD-HF/parametr.fic
Bonjour,
Il faut débuger ton problème avec un projet en windev puis si cela fonctionne le faire sous windev mobile , cela me parait être un problème de droit d'écriture ou de conversion de chaine de caractère .
A+
--------------------------------------
//ON GERE LA STRUCTURE DES FICHIERS DE DONNEES
sListeDesErreurs est une chaîne
// Vérification stricte de la structure de fichiers
HVérifieStructure("*", hIdentique)
// Pour tous les fichiers
POUR TOUTE CHAÎNE sNomUnFichier DE HListeFichier() SÉPARÉE PAR RC
QUAND EXCEPTION DANS
// Ouverture ou création du fichier de données
HCréationSiInexistant(sNomUnFichier)
FAIRE
// Problème
// Il y a une différence de structure ?
SI HErreur(hErrEnCours) = 70016 ALORS
// Erreur 70016: LE FICHIER NE CORRESPOND PAS A SA DESCRIPTION
ToastAffiche("Mise à jour de la structure du fichier <" + ...
sNomUnFichier + "> en cours...", toastCourt, cvMilieu, chCentre)
// On met à jour la structure du fichier
SI PAS HModifieStructure(sNomUnFichier) ALORS
// Echec de la mise à jour de la structure du fichier
sListeDesErreurs += [RC] + ...
"- Erreur de modification de structure pour le fichier <" + ...
sNomUnFichier + "> : " + HErreurInfo()
FIN
SINON
// Autres erreurs qu'une différence de structure
sListeDesErreurs += [RC] + "- Erreur d'accès au fichier <" + ...
sNomUnFichier + "> : " + HErreurInfo()
FIN
FIN
FIN
// Vérification compatible de la structure de fichier
// Ainsi les modifications "les plus courantes" permettent
// quand même l'utilisation de l'application (voir HVérifieStructure)
HVérifieStructure("*", hCompatible)
// Il y a eu des erreurs ?
SI sListeDesErreurs <> "" ALORS
// Message afin de prévenir
SI PAS OuiNon("Des erreurs sont apparus lors de l'ouverture des fichiers : " + RC + ...
sListeDesErreurs + RC +...
"Continuer quand même l'application ?") ALORS
FIN
FIN
bonjour,
je pense que ton application android manque des droits (autorisations) pour pouvoir modifier les fichiers.
Message envoyé
le
14-12-2022
par
figaro28
(France)
Bonjour
Surtout sur les SD Card (droit d'écriture)
essaie ton APK en mémoire centrale du smartphone et non sur la SD Card
pour voir si l'erreur se répète ou pas.
Merci a tous pour la réponse,
Oui exactement, il a une relation avec l'autorisation.
J'ai précisé le chemin de sauvegarde a l’intérieur de répertoire d’application et ça marche très bien.