PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Nul et nouveau demande de l'aide..
Nul et nouveau demande de l'aide..
Débuté par Miloslav, 02 avr. 2018 20:15 - 11 réponses
Membre enregistré
11 messages
Posté le 02 avril 2018 - 20:15
Bonjour,
Je viens d'acheter Webdev 23 piour tenter d'implanter un programme de simulation de l'examen de radioamateur, avec un accès multiple pour un club. Ce club a déjà créé un programme en Windev, mais l'auteur est décédé il y a 3 ans et sa famille ne souhaite pas voir le programme (protégé bien sûr) évoluer.
Les questions sont exportables au format Excel depuis l'ancien programme, mais j'ai deux "petits" problèmes :
- le 1er est que certains champs texte sont >255 caractères, (et que les champs sont coupés à cette limite) ce n'est pas le pire.. j'arrive à importer en Excel natif comme ODBC mais je vois pas comment dépasser cette limite qui n'existe pas dans Excel 2016 (et que Windev apparemment ne connaît pas)
- le second montre à quel point je suis nul : j'importe les 2453 lignes du fichier, tout va bien, mais je voudrais ajouter tout simplement un index primaire et surtout un champ CRC 32 pour faciliter un problème de tirage au sort pas catégorie de questions, en plaçant un index composé sur la famille de questions et secondairement sur le CRC pour ne pas reposer la même question. Après avoir rempli un tableau de 20 questions il me suffira par exemple de trier ce tableau sur le CRC pour les poser dans le désordre avec un temps minuté.
Mais quand j'ajoute la clé primaire, et le champ CRC32, rien ne se passe, je vois bien les deux champs dans la structure du fichier, mais tout se passe comme si j'étais encore en lien avec le fichier Excel, quand je navigue avec WDmap ou l'autre utilitaire, je ne vois pas du tout les deux champs ajoutés, et je ne vois pas comment enregistrer le fichier modifié en HFSQL pour continuer, c'est vous dire à quel point je suis nul..
Pourriez-vous m'aider SVP ? C'est râlant de bloquer avant même de n'avoir écrit ne serait ce qu'une ligne, tout semble se passer comme si je n'arrivais pas à sauvegarder la table avec ces deux champs en plus..
Merci de votre aide, j'ai déjà fait une maquette en Delphi, mais c'est pour déployer le programme sur un site Web que j'essaye de porter ce programme pour permettre des accès simultanés, et aussi pour intégrer avec le temps le site du club lui-même (mails, téléchargements, voir forums). Surtout que je vois que le Wlangage permet d'obtenir directement un CRC32..
Merci à vous, je me sens vraiment plus que nul devant ce problème trivial..
Amitiés,
Milos

--
Miloslav BILIK
Message modifié, 02 avril 2018 - 20:40
Membre enregistré
11 messages
Posté le 02 avril 2018 - 21:12
Euh.. une question accessoire, est-ce que ces index composés sont "stables" ? Je veux dire qu'à vue de nez, sur 2450 lignes, il y a 26 10^-3 chances que je tombe sur le même CRC32 deux fois ou plus, ce qui serait vraiment pas de chance, mais est-ce que j'aurai les deux fois le même CRC dans le même ordre selon la clé primaire, ou pas nécessairement ?
Je pose la question uniquement dans le cas où le même candidat voudrait passer deux fois de suite la simulation de l'examen, si le tri est stable il me suffirait de stocker les 10 index primaires pour ce candidat pour éviter qu'il ne retombe sur une question posée la session précédente (il y a 10 familles de 2 questions chacune pour former les 20 questions d'une session)
Amitiés,
Milos

--
Miloslav BILIK
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 03 avril 2018 - 10:30
Bonjour,

Bon, j'ai pas tout compris à ton soucis vraiment mais as tu lu un minimum le guide d’autoformation fournis avec WEBDEV ?
De mémoire (çà date un pti peu), la création de l'analyse, l'import de base etc sont un des tout premiers chapitres de ce guide et devrait répondre à pas mal de tes interrogations.
Membre enregistré
11 messages
Posté le 04 avril 2018 - 07:52
Bonjour,
J'ai lu les 3 livres fournis, mais j'ai préféré suivre mon petit problème q'un exemple comme je n'ai ni clients ni commandes. En somme je prends nouveau projet, créer une base, HFSQL natif (ou C/S), il me propose de créer ou importer, j'importe depuis Excel 2016 (en natif ou ODBC), me demande si je veux travailler avec Excel ou HFSQL et je réponds HFSQL, et c'est là que ça se gâte. Je me retrouve souvent dans GDS mais pas grave ; surtout si je modifie la structure du fichier qu'il a appelé A$, si je crée un index primaire ou un champ CRC, ils sont bien tous les deux dans l'inspecteur des champs de A$, mais pas moyen de sauver A$ modifié, quand je l'examine ligne par ligne, l'index ou CRC n'y sont pas.
Merci
Milos

--
Miloslav BILIK
Membre enregistré
11 messages
Posté le 04 avril 2018 - 08:00
J'oubliais, il fait effectivement l'analyse en tout premier lieu, automatiquement. Mais je ne vois pas comment en profiter, j'ai essayé de la refaire faire une fois modifié, etc..

--
Miloslav BILIK
Membre enregistré
11 messages
Posté le 04 avril 2018 - 19:42
Bonsoir,
Après de multiples essais, je viens enfin de trouver comment obtenir un fichier classic HFSQL incluant les deux champs que j'avais ajoutés (Id pour Index primaire, et CRC pour le calcul du CRC32 depuis un champ texte) : si j'ai bien mémorisé mes manœuvres, c'est depuis je ne sais plus quel outil que j'ai pu faire une nouvelle analyse du fichier - l'outil demande aussi un chemin de sauvegarde pour l'ancienne analyse, fichier ou les deux, je ne sais plus -.
Au passage cet outil demande si je me sers du langage intégré, ou de Pascal ou de C++, j'ai donc répondu Pascal mais c'est dommage comme je peux utiliser indifféremment les deux derniers -.
Une remarque critique sur ce forum, je vois souvent des réponses du genre "avez-vous au moins du le livre d'autoformation" ou quelque chose de ce genre. Dans ma question de départ ça n'avait strictement aucun intérêt, d'abord parce que je n'ai pas vraiment besoin de regarder un exemple utilisant un SGBD multi-fichiers, ensuite parce que ces livres pour un import depuis Excel n'expliquent en rien à quoi sert de cocher la case pour convertir une chaîne Unicode en Ansi et autres, enfin et surtout parce que je n'y ai lu nulle part que si je faisais un import d'un autre format il fallait lancer "manuellement" - alors que Webdev 23 fait tellement de choses automatiquement - une sorte d'analyse manuelle aboutissant à confirmer l'ajout de deux champs.
Cette critique faite, reste la première question que je posais : un de mes champs texte Excel dépasse parfois 255 caractères, et atteint parfois plus de 400 caractères. Quoiqu'on puisse penser de l'intérêt des SGBD normalisés, par exemple dans Excel scinder une feuille a un intérêt relativement moindre comme Excel compacte de deux façons les fichiers texte répétés s'ils sont semblables carrément en n'en créant qu'un seul exemplaire dans la feuille avec un lien, s'ils sont un peu différents sur la fin, avec une sorte de mix codant un début unique et un lien vers les différences.
Donc ma question reste, comment importer dans HFSQL des champs texte depuis Excel ou autres, de plus de 255 caractères ? Merci de ne pas me demander si j'ai lu les 3 livres exemple, ça ne s'y trouve pas. Accessoirement que Webdev puisse convertir en chaînes de type Ansi montre qu'il doit pouvoir faire mieux que 255 caractères puisque les chaînes Ansi peuvent prendre 2 bytes et même davantage pour coder un seul caractère.
Merci à ceux qui voudraient réellement se demander pourquoi l'import depuis Excel limite la longueur des textes et comment y remédier,
Cordialement,
Milos

--
Miloslav BILIK
Message modifié, 04 avril 2018 - 19:58
Posté le 05 avril 2018 - 10:32
Miloslav a écrit :
Bonsoir,
Après de multiples essais, je viens enfin de trouver comment obtenir un
fichier classic HFSQL incluant les deux champs que j'avais ajoutés (Id pour
Index primaire, et CRC pour le calcul du CRC32 depuis un champ texte) : si
j'ai bien mémorisé mes man½uvres, c'est depuis je ne sais plus quel outil que
j'ai pu faire une nouvelle analyse du fichier - l'outil demande aussi un
chemin de sauvegarde pour l'ancienne analyse, fichier ou les deux, je ne sais
plus -.
Au passage cet outil demande si je me sers du langage intégré, ou de Pascal
ou de C++, j'ai donc répondu Pascal mais c'est dommage comme je peux utiliser
indifféremment les deux derniers -.
Une remarque critique sur ce forum, je vois souvent des réponses du genre
"avez-vous au moins du le livre d'autoformation" ou quelque chose de ce
genre. Dans ma question de départ ça n'avait strictement aucun intérêt,
d'abord parce que je n'ai pas vraiment besoin de regarder un exemple
utilisant un SGBD multi-fichiers, ensuite parce que ces livres pour un import
depuis Excel n'expliquent en rien à quoi sert de cocher la case pour
convertir une chaîne Unicode en Ansi et autres, enfin et surtout parce que je
n'y ai lu nulle part que si je faisais un import d'un autre format il fallait
lancer "manuellement" - alors que Webdev 23 fait tellement de choses
automatiquement - une sorte d'analyse manuelle aboutissant à confirmer
l'ajout de deux champs.
Cette critique faite, reste la première question que je posais : un de mes
champs texte Excel dépasse parfois 255 caractères, et atteint parfois plus de
400 caractères. Quoiqu'on puisse penser de l'intérêt des SGBD normalisés, par
exemple dans Excel scinder une feuille a un intérêt relativement moindre
comme Excel compacte de deux façons les fichiers texte répétés s'ils sont
semblables carrément en n'en créant qu'un seul exemplaire dans la feuille
avec un lien, s'ils sont un peu différents sur la fin, avec une sorte de mix
codant un début unique et un lien vers les différences.
Donc ma question reste, comment importer dans HFSQL des champs texte depuis
Excel ou autres, de plus de 255 caractères ? Merci de ne pas me demander si
j'ai lu les 3 livres exemple, ça ne s'y trouve pas. Accessoirement que Webdev
puisse convertir en chaînes de type Ansi montre qu'il doit pouvoir faire
mieux que 255 caractères puisque les chaînes Ansi peuvent prendre 2 bytes et
même davantage pour coder un seul caractère.
Merci à ceux qui voudraient réellement se demander pourquoi l'import depuis
Excel limite la longueur des textes et comment y remédier,
Cordialement,
Milos


bonjour
quelques conseils ...
le premier, aérer ton texte dans ton post qui arrive comme un bloc et
on n'a vraiment pas envie de le lire (et donc de t'aider)

deuxième conseil : ce n'est pas parce que pcsoft offre des
fonctionnalités non structurantes qu'il faut les utiliser. Envoyer un
fichier excel dans une analyse est une abérration pour moi.
Bon je n'utilise pas l'analyse, mais des intégrations de fichier excel,
j'en ai 3 ou 4 par jour sur ma plate-forme (donc une table à chaque
fois ???)

Pour moi, il faut créer sa table manuellement.
Puis faire un programme, qui ouvre le fichier excel, et copie en
faisant les contrôles et adaptations lignes par lignes.
c'est long ? non pas tant que ça quand on a des modèles, voire des
generateurs de lignes de programmes d'après une structure excel commme
j'ai fini par le faire.

pour en revenir à l'import direct, c'est juste pour la démo.
par pour des fichiers excel de la vraie vie.

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Membre enregistré
11 messages
Posté le 05 avril 2018 - 20:06
Bonsoir,

D'abord, merci pour ta réponse qui au moins offre quelque sens pour moi.

Je n'ai rien au contraire, contre l'écriture d'un programme, puisque j'ai écrit en Delphi la maquette d'un programme qui lit bien ligne par ligne une feuille Excel, et effectue bien la simulation souhaitée d'un examen depuis les données de cette feuille (et accessoirement d'un champ dont on déduit le chemin où trouver l'image PNG de la question à poser). J'utilise pour ça l'excellent composant TMS Flexcel qui permet à peu près n'importe quoi sur une feuille Excel.
Accessoirement, le programme actuel de simulation d'examen a été écrit en Webdev, mais est protégé, son auteur est décédé, et seule la partie permettant l'ajout d'une question ou l'export vers Excel est permise. Dommage évidemment, l'auteur a souhaité que son programme n'évolue plus après lui et on peut le comprendre.

Le seul objectif pour moi de Webdev est de réécrire ce programme mais de façon à ce qu'il s'exécute sur un site, et permette donc à plusieurs usagers de faire indépendamment cette simulation d'un examen.

Tu comprendras donc que je n'ai besoin en fait que d'une seule table, dont un champ permet de déduire l'adresse de l'image de la question (en PNG), et un autre champ qui lui est souvent long, contient l'explication relative aux réponses à afficher à la demande dans une fenêtre fille.

Le Webdev d'origine avait d'autres fichiers dans sa base, comme les noms, notes avec bonnes réponses et erreurs des candidats, etc.. mais c'est un peu superflu pour l'instant si on ne souhaite que de faire migrer vers un site Web.
A terme on pourrait rajouter des options intéressantes pour un club comme l'envoi de mails, un forum ou blog, etc.. mais ça ne presse pas.

Je regrette plutôt que les manuels et exemples se réfèrent à des fichiers multiples dont je n'ai pas l'usage dans ce cas précis.

J'aurais bien sûr préféré un document sur le Wlangage permettant de réaliser ligne après ligne ce que tu décris.

Accessoirement, l'examen simulé contient 20 questions dont 2 de chacune de 10 familles. Le plus simple pour permettre une pseudo-randomisation me semble être est de créer un champ CRC32 depuis le libellé en texte de la question (et j'ai vu que le Wlangage permet d'obtenir directement un CRC32), puis de filtrer ou faire un index composite, entre familles en 1er lieu, CRC32 en second, et index de ligne en dernier pour éviter d'hypothétiques collisions.

Merci encore pour ta réponse. J'en déduis que je dois créer une base HFSQL vide de structure voisine de la feuille Excel, chercher dans la doc en ligne comment lire une cellule Excel 2016 et remplir rang par rang et dans chacune colonne par colonne ou du moins champ correspondant par champ correspondant, pour obtenir la "base" si on peut dire pour une table unique, de mon fichier HFSQL.
Accessoirement mais pas vraiment, permettre l'opération inverse d'export vers une feuille Excel, pour ne pas rester dépendant de l'avenir de HFSQL et permettre à l'usager maître d'ajouter, modifier, retirer des questions dans Excel et pas seulement dans HFSQL.

Merci encore de ta réponse très bienvenue puisque productive pour moi, et très cordialement,

Milos

--
Miloslav BILIK
Posté le 06 avril 2018 - 08:53
Le 05/04/2018, Miloslav a supposé :
Bonsoir,

D'abord, merci pour ta réponse qui au moins offre quelque sens pour moi.

Je n'ai rien au contraire, contre l'écriture d'un programme, puisque j'ai
écrit en Delphi la maquette d'un programme qui lit bien ligne par ligne une
feuille Excel, et effectue bien la simulation souhaitée d'un examen depuis
les données de cette feuille (et accessoirement d'un champ dont on déduit le
chemin où trouver l'image PNG de la question à poser). J'utilise pour ça
l'excellent composant TMS Flexcel qui permet à peu près n'importe quoi sur
une feuille Excel.
Accessoirement, le programme actuel de simulation d'examen a été écrit en
Webdev, mais est protégé, son auteur est décédé, et seule la partie
permettant l'ajout d'une question ou l'export vers Excel est permise. Dommage
évidemment, l'auteur a souhaité que son programme n'évolue plus après lui et
on peut le comprendre.

Le seul objectif pour moi de Webdev est de réécrire ce programme mais de
façon à ce qu'il s'exécute sur un site, et permette donc à plusieurs usagers
de faire indépendamment cette simulation d'un examen.

Tu comprendras donc que je n'ai besoin en fait que d'une seule table, dont un
champ permet de déduire l'adresse de l'image de la question (en PNG), et un
autre champ qui lui est souvent long, contient l'explication relative aux
réponses à afficher à la demande dans une fenêtre fille.

Le Webdev d'origine avait d'autres fichiers dans sa base, comme les noms,
notes avec bonnes réponses et erreurs des candidats, etc.. mais c'est un peu
superflu pour l'instant si on ne souhaite que de faire migrer vers un site
Web.
A terme on pourrait rajouter des options intéressantes pour un club comme
l'envoi de mails, un forum ou blog, etc.. mais ça ne presse pas.

Je regrette plutôt que les manuels et exemples se réfèrent à des fichiers
multiples dont je n'ai pas l'usage dans ce cas précis.

J'aurais bien sûr préféré un document sur le Wlangage permettant de réaliser
ligne après ligne ce que tu décris.

Accessoirement, l'examen simulé contient 20 questions dont 2 de chacune de 10
familles. Le plus simple pour permettre une pseudo-randomisation me semble
être est de créer un champ CRC32 depuis le libellé en texte de la question
(et j'ai vu que le Wlangage permet d'obtenir directement un CRC32), puis de
filtrer ou faire un index composite, entre familles en 1er lieu, CRC32 en
second, et index de ligne en dernier pour éviter d'hypothétiques collisions.

Merci encore pour ta réponse. J'en déduis que je dois créer une base HFSQL
vide de structure voisine de la feuille Excel, chercher dans la doc en ligne
comment lire une cellule Excel 2016 et remplir rang par rang et dans chacune
colonne par colonne ou du moins champ correspondant par champ correspondant,
pour obtenir la "base" si on peut dire pour une table unique, de mon fichier
HFSQL.
Accessoirement mais pas vraiment, permettre l'opération inverse d'export vers
une feuille Excel, pour ne pas rester dépendant de l'avenir de HFSQL et
permettre à l'usager maître d'ajouter, modifier, retirer des questions dans
Excel et pas seulement dans HFSQL.

Merci encore de ta réponse très bienvenue puisque productive pour moi, et
très cordialement,

Milos


Salut Milos
je vais te poster quelques exemples de code pour exploiter un fichier
excel. Ce sera par rapport à du mysql, mais tu pourrras le transposer.
(j'espère dans la journée)

Tu l'as dit : rester maitre ...
je me suis toujours méfié des instructions boites noires. Dès que cela
coince, qu'un cas n'est pas géré, on se retrouve obligé de tout
redévelopper.

Après il y a des trucs tout simples pour importer de l'excel. Comme je
l'ai dit des intégrations excel j'en ai plusieurs par jour, avec des
clients incapables de respecter des structures attendues. Du coup (pour
les petits fichiers) j'en arrive à utiliser ce système très simple.

un champs de saisie multiligne ou l'on copie colle les colonnes de
l'excel. Une table memoire (table3 ci dessous) où j'ai mes champs et un
petit code

TableSupprimeTout(Table3)
POUR TOUTE CHAÎNE wlig DE content SEPAREE PAR RC

TableAjoute(Table3,wlig)
FIN
(sachant que lecopier coller des colonnes excel est séparé par des TAB,
cela rentre directement dans une table memoire dont les colonnes sont
dans le même ordre)

l'utilisateur verifie dans sa table affichée que c'est bien l'attendu,
ensuite je me génère un insert bulk en relisant ma table
DemarreBouton(MoiMême..Libellé)
cmd est une chaîne
nbrows est un entier
cmd ="insert into referentiel_famille_speeder values "
ExecSQLCde("truncate table referentiel_famille_speeder")
POUR TOUTE LIGNE DE Table3
cmd+="("
cmd+=QuoteV(Table3.hierarchie)
cmd+=QuoteV(Table3.index)
cmd+=QuoteV(Table3.segm)
cmd+=QuoteV(Table3.cren)
cmd+=QuoteV(Table3.fam)
cmd+=Quote(Table3.libelle)+"),"
FIN
cmd=TronqueDernierCaractere(cmd)
nbrows=ExecInsertAndReturnAffectedRows(cmd)
EcritLog(nbrows+" lignes intégrées dans le référentiel famille")
TermineBouton(MoiMême..Libellé)


Cet exemple d'intégration que j'ai réalisé en WD19 en 20 minutes hier,
doc utilisateur comprise.

et en webdev ce genre de système est possible aussi.


Et mes utilisateurs aiment bien ce principe du copier coller en fait.

Bon promis je t'envoie des codes à partir de fichiers.

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Membre enregistré
11 messages
Posté le 06 avril 2018 - 19:45
Salut Eric,

Je te remercie beaucoup pour cet exemple.

D'autant qu'ayant commencé à programmer depuis 82 et ayant fini vers 2002 en BWCC C++, avec les joyeusetés de la gestion des queues de messages de Windows c'était très concis mais pas vraiment de la tarte. Un seule désallocation d'objet faite par accident deux fois et j'en avais pour un mois pour chercher la ligne fautive.

Je suis donc très bien placé pour savoir qu'il n'y a rien de plus détestable que qulqu'un qui en guise de question, demande en fait qu'on écrive plus ou moins le code à sa place et ceci sans même avoir réfléchi un minimum.

J'ai malheusement laissé tomber quand il n'a plus été possible d'écrire des fichiers monoposte avec des fichiers DLL 16 bits comme j'utilisais un DLL paradox, et je n'avais plus l'occasion comme je suis professionnellement médecin d'écrire quoique ce soit en SQL.

Je m'ay remets donc pour mon club de radioamateurs de Neuilly auquel j'ai adhéré depuis ma région de Nîmes..

Là j'ai deux outils à apprendre en parallèle, l'un tout à fait à "mon goût" qui est le RAD Embardero 10.2.3 qui gère Delphi et C++ mais est devenu très loin d'être aussi simple que les premiers RAD de Borland, et en plus qui gère de façon complexe les SQL déployés, et tout récemment Webdev23 qui semble "facile" mais que j'ai du mal à comprendre, dont les déclarations sont bizarres et ne se font même pas en anglais ..:)

Merci encore à toi.

Je n'ai pas fini d'explorer comme dans les années 80 le CRC32 utilisait un polynôme agréé CCITT et que maintenant il y en une flopée, à en calculer un en Delphi ou autres je vais devoir vérifier si le polynôme est le même ou beaucoup d'autres possibles..

Merci encore et cordialement,

Milos

--
Miloslav BILIK
Membre enregistré
11 messages
Posté le 08 avril 2018 - 11:48
Roumegou Eric a écrit :
Le 05/04/2018, Miloslav a supposé :
Bonsoir,

D'abord, merci pour ta réponse qui au moins offre quelque sens pour moi.

Je n'ai rien au contraire, contre l'écriture d'un programme, puisque j'ai
écrit en Delphi la maquette d'un programme qui lit bien ligne par ligne une
feuille Excel, et effectue bien la simulation souhaitée d'un examen depuis
les données de cette feuille (et accessoirement d'un champ dont on déduit le
chemin où trouver l'image PNG de la question à poser). J'utilise pour ça
l'excellent composant TMS Flexcel qui permet à peu près n'importe quoi sur
une feuille Excel.
Accessoirement, le programme actuel de simulation d'examen a été écrit en
Webdev, mais est protégé, son auteur est décédé, et seule la partie
permettant l'ajout d'une question ou l'export vers Excel est permise. Dommage
évidemment, l'auteur a souhaité que son programme n'évolue plus après lui et
on peut le comprendre.

Le seul objectif pour moi de Webdev est de réécrire ce programme mais de
façon à ce qu'il s'exécute sur un site, et permette donc à plusieurs usagers
de faire indépendamment cette simulation d'un examen.

Tu comprendras donc que je n'ai besoin en fait que d'une seule table, dont un
champ permet de déduire l'adresse de l'image de la question (en PNG), et un
autre champ qui lui est souvent long, contient l'explication relative aux
réponses à afficher à la demande dans une fenêtre fille.

Le Webdev d'origine avait d'autres fichiers dans sa base, comme les noms,
notes avec bonnes réponses et erreurs des candidats, etc.. mais c'est un peu
superflu pour l'instant si on ne souhaite que de faire migrer vers un site
Web.
A terme on pourrait rajouter des options intéressantes pour un club comme
l'envoi de mails, un forum ou blog, etc.. mais ça ne presse pas.

Je regrette plutôt que les manuels et exemples se réfèrent à des fichiers
multiples dont je n'ai pas l'usage dans ce cas précis.

J'aurais bien sûr préféré un document sur le Wlangage permettant de réaliser
ligne après ligne ce que tu décris.

Accessoirement, l'examen simulé contient 20 questions dont 2 de chacune de 10
familles. Le plus simple pour permettre une pseudo-randomisation me semble
être est de créer un champ CRC32 depuis le libellé en texte de la question
(et j'ai vu que le Wlangage permet d'obtenir directement un CRC32), puis de
filtrer ou faire un index composite, entre familles en 1er lieu, CRC32 en
second, et index de ligne en dernier pour éviter d'hypothétiques collisions.

Merci encore pour ta réponse. J'en déduis que je dois créer une base HFSQL
vide de structure voisine de la feuille Excel, chercher dans la doc en ligne
comment lire une cellule Excel 2016 et remplir rang par rang et dans chacune
colonne par colonne ou du moins champ correspondant par champ correspondant,
pour obtenir la "base" si on peut dire pour une table unique, de mon fichier
HFSQL.
Accessoirement mais pas vraiment, permettre l'opération inverse d'export vers
une feuille Excel, pour ne pas rester dépendant de l'avenir de HFSQL et
permettre à l'usager maître d'ajouter, modifier, retirer des questions dans
Excel et pas seulement dans HFSQL.

Merci encore de ta réponse très bienvenue puisque productive pour moi, et
très cordialement,

Milos


Salut Milos
je vais te poster quelques exemples de code pour exploiter un fichier
excel. Ce sera par rapport à du mysql, mais tu pourrras le transposer.
(j'espère dans la journée)

Tu l'as dit : rester maitre ...
je me suis toujours méfié des instructions boites noires. Dès que cela
coince, qu'un cas n'est pas géré, on se retrouve obligé de tout
redévelopper.

Après il y a des trucs tout simples pour importer de l'excel. Comme je
l'ai dit des intégrations excel j'en ai plusieurs par jour, avec des
clients incapables de respecter des structures attendues. Du coup (pour
les petits fichiers) j'en arrive à utiliser ce système très simple.

un champs de saisie multiligne ou l'on copie colle les colonnes de
l'excel. Une table memoire (table3 ci dessous) où j'ai mes champs et un
petit code

TableSupprimeTout(Table3)
POUR TOUTE CHAÎNE wlig DE content SEPAREE PAR RC

TableAjoute(Table3,wlig)
FIN
(sachant que lecopier coller des colonnes excel est séparé par des TAB,
cela rentre directement dans une table memoire dont les colonnes sont
dans le même ordre)

l'utilisateur verifie dans sa table affichée que c'est bien l'attendu,
ensuite je me génère un insert bulk en relisant ma table
DemarreBouton(MoiMême..Libellé)
cmd est une chaîne
nbrows est un entier
cmd ="insert into referentiel_famille_speeder values "
ExecSQLCde("truncate table referentiel_famille_speeder")
POUR TOUTE LIGNE DE Table3
cmd+="("
cmd+=QuoteV(Table3.hierarchie)
cmd+=QuoteV(Table3.index)
cmd+=QuoteV(Table3.segm)
cmd+=QuoteV(Table3.cren)
cmd+=QuoteV(Table3.fam)
cmd+=Quote(Table3.libelle)+"),"
FIN
cmd=TronqueDernierCaractere(cmd)
nbrows=ExecInsertAndReturnAffectedRows(cmd)
EcritLog(nbrows+" lignes intégrées dans le référentiel famille")
TermineBouton(MoiMême..Libellé)


Cet exemple d'intégration que j'ai réalisé en WD19 en 20 minutes hier,
doc utilisateur comprise.

et en webdev ce genre de système est possible aussi.


Et mes utilisateurs aiment bien ce principe du copier coller en fait.

Bon promis je t'envoie des codes à partir de fichiers.

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com


Je me permets de te relancer..

J'ai créé une table vide au format HFSQL avec exactement les mêmes champs que la table Excel que je veux importer (j'ai quand même mis en plus un premier champ index unique à tout hasard)
.
Comme je ne connais rien au langage de Webdev, tout ce que je veux est parcourir cette table Excel et ajouter ligne par ligne son contenu à ma table HFSQL ("Fichier"), mais je suis totalement empatouillé à cause des aides innombrables au codage de Webdev (par exemple dans les procédures j'ai de suite la création d'un code d'import depuis Excel via ODBC), mais je ne vois même pas comment ouvrir tout simplement ma table HFSQL principale, et encore moins comment lire ce fichier Excel ligne par ligne pour l'ajouter à ma seule et unique table de la base..

Aurais-tu un lien vers un exemple de code qui fait ça ? Je n'ai même ps besoin pour l'instant de cliquer sur un bouton pour démarrer l'import, je voudrais juste lire ligne par ligne et cellule par cellule dans la ligne pour caser les contenus qui vont bien..

Curieusement, avec tous ces assistants je ne vois pas l'opération inverse, exporter le contenu de HFSQL vers Excel, je suppose que c'est la même procédure utilisée dans le sens inverse ?

Avec toutes mes excuses pour quelque chose qui doit te paraître plus qu'évident, mais si je n'arrive même pas à faire ça, j'aurai vraiment acheté Webdev pour rien..

Bien cordialement,

Milos

--
Miloslav BILIK
Posté le 09 avril 2018 - 11:04
Miloslav avait écrit le 08/04/2018 :

bonjour Milos
Merci de me donner ton adresse mail que je t'envoie un code complet.
Mais je n'ai pas envie de passer du temps à l'anonymiser pour le mettre
en public.
mon adresse eric.roumegou
sur le domaine wtablettes.net

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com