Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| PROBLEME DE GESTION DE FICHIER | |
| | Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: PROBLEME DE GESTION DE FICHIER Sam 16 Mai 2009 - 18:57 | |
| Salut à tous, Bien compris ta réponse a ma derniere demande d'aide, mais je patauge toujours Pour bien expliquer mon problème je te donne 2 codes, le 1er pour créer le fichier et le 2eme qui est le premier module de mon futur logiciel. Dans le 2eme prog, Je voudrais inserer dans le list 2 tout les util$ et dans le list 9 tout les grad$. Je n'y parviens pas. Voici les Codes. - Code:
-
dim util$(10),mdp$(10),grad$(10) dim n
for n=2 to 10 util$(n)=" " mdp$(n)="bonjour " grad$(n)="inactif " next n
util$(1)="MOI " mdp$(1)="admin " grad$(1)="administrateur "
file_open_write 1,"utilisateur.cfp" for n=1 to 10 file_writeln 1,util$(n)+mdp$(n)+grad$(n) next n file_close 1 Voici le 2eme - Code:
-
label quit,demar
dim util$(10),mdp$(10),grad$(10) dim n
gosub demar
left 0,223:top 0,182:width 0,587:height 0,537 caption 0,"COMPTE FAMILIALE * Gestion Des Utilisateurs *" alpha 1 left 1,93:top 1,34:width 1,113 caption 1," Liste Des Utilisateurs"
list 2 left 2,61:top 2,61:width 2,170:height 2,158
button 3 left 3,108:top 3,377 caption 3,"Ajouter "
button 4 left 4,110:top 4,231 caption 4,"Supprimer"
edit 5 left 5,84:top 5,346
alpha 6 left 6,113:top 6,319 caption 6," Nouveau"
button 7 left 7,242:top 7,377:width 7,148 caption 7,"Enregister les Modifications"
button 8 left 8,421:top 8,377 caption 8,"Quitter" on_click 8, quit
list 9 left 9,261:top 9,61:width 9,97:height 9,159
alpha 10 left 10,270:top 10,35 caption 10," Grade"
button 11 left 11,273:top 11,231 caption 11,"Modifier"
combo 12 left 12,369:top 12,61
alpha 13 left 13,379:top 13,39:width 13,127 caption 13," Changer le Grade"
alpha 14 left 14,40:top 14,447:width 14,501 caption 14,"ATTENTION: la Création d'un nouvel Utilisateur lui affecte automatiquement le mot de passe BONJOUR"
button 15 left 15,4:top 15,3:width 15,41 caption 15,"AIDE"
end rem ------------------------------------------------------------------- demar: file_open_read 1,"utilisateur.cfp" for n=1 to 10 file_readln 1,util$(n)+mdp$(n)+grad$(n) next n
print_locate 10,10 print util$(1)
return
quit: terminate Le print_locate 10,10 ne m'affiche rien Merci d'avance et A+ | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: PROBLEME DE GESTION DE FICHIER Sam 16 Mai 2009 - 21:48 | |
| Pour lire une ligne du fichier, file_readln 1,util$(n)+mdp$(n)+grad$(n) du sous-programme demar ne peut pas fonctionner, car util$(n)+mdp$(n)+grad$(n) est une "concaténation", c'est à dire une opération qui fusionne 3 variables alphanumériques pour ne donner que le résultat de cette fusion. D'après ton 1er programme, je constate que tu utilises le caractère "espace" comme séparateur entre les 3 parties d'une ligne de ton fichier "utilisateur.cfp", car on y trouve en 1ère ligne "MOI admin administrateur". Et que si une ligne commence par ce séparateur, il n'y a pas d'utilisateur, ce qui est le cas des 9 autres lignes: " bonjour inactif ". Nous allons utiliser ces 2 constatations: - on n'analyse que les lignes qui ne commencent pas par un espace (lignes significatives) - dans les lignes significatives, on recherche les espaces (tes séparateurs) pour retrouver les 3 variables util$(n), mdp$(n) et grad$(n). Donc pour découper cette ligne en 3 variables util$(n), mdp$(n) et grad$(n), - il faut tout d'abord lire cette ligne et la stocker dans une variable, par exemple ligne$, - ensuite parcourir chaque caractère de cette variable ligne$ jusqu'au premier séparateur, - mettre ce qu'on obtient dans util$(n), - recommencer jusqu'au deuxième séparateur, - mettre ce qui est lu dans mdp$(n), - puis le reste dans grad$(n). Ensuite, pour inserer tous les util$ dans le list 2 et tous les grad$ dans le list 9, on utilise tout simplement ITEM_ADD dans demar. Mais pour que dans demar les objets 2 et 9 soient connus, il faut placer l'appel après leur création. J'ai mis gosub demar juste avant le end final. ce qui donne: - Code:
-
label quit,demar
dim util$(10),mdp$(10),grad$(10), ligne$ dim n,j,k
left 0,223:top 0,182:width 0,587:height 0,537 caption 0,"COMPTE FAMILIALE * Gestion Des Utilisateurs *"
alpha 1 left 1,93:top 1,34:width 1,113 caption 1," Liste Des Utilisateurs"
list 2 left 2,61:top 2,61:width 2,170:height 2,158
button 3 left 3,108:top 3,377 caption 3,"Ajouter "
button 4 left 4,110:top 4,231 caption 4,"Supprimer"
edit 5 left 5,84:top 5,346
alpha 6 left 6,113:top 6,319 caption 6," Nouveau"
button 7 left 7,242:top 7,377:width 7,148 caption 7,"Enregister les Modifications"
button 8 left 8,421:top 8,377 caption 8,"Quitter" on_click 8, quit
list 9 left 9,261:top 9,61:width 9,97:height 9,159
alpha 10 left 10,270:top 10,35 caption 10," Grade"
button 11 left 11,273:top 11,231 caption 11,"Modifier"
combo 12 left 12,369:top 12,61
alpha 13 left 13,379:top 13,39:width 13,127 caption 13," Changer le Grade"
alpha 14 left 14,40:top 14,447:width 14,501 caption 14,"ATTENTION: la Création d'un nouvel Utilisateur lui affecte automatiquement le mot de passe BONJOUR"
button 15 left 15,4:top 15,3:width 15,41 caption 15,"AIDE"
gosub demar
end rem ------------------------------------------------------------------- demar: file_open_read 1,"utilisateur.cfp" for n=1 to 10
rem lecture de la ligne file_readln 1,ligne$
rem teste si ligne$ est significative ou pas if left$(ligne$,1) <> " " rem recherche du premier séparateur (sa place sera dans j) j=1:while mid$(ligne$,j,1) <> " ":j=j+1:end_while util$(n)=left$(ligne$,j-1):k=j+1
rem recherche du deuxième séparateur (sa place sera dans k) while mid$(ligne$,k,1) <> " ":k=k+1:end_while mdp$(n)=mid$(ligne$,j+1,k-j-1)
rem troisième partie de la ligne grad$(n)=right$(ligne$,len(ligne$)-k)
rem on insère item_add 2,util$(n) item_add 9,grad$(n) end_if
next n
return
quit: terminate | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: PROBLEME DE GESTION DE FICHIER (SUITE) Sam 16 Mai 2009 - 23:38 | |
| Merci pour ta rapidité de réponse et surtout pour le petit cours de PANORAMIC. Au moins on essai d'avancer en compréhension. Bien que je ne suis pas un adepte de while end_while, je comprends la façon de démonter la ligne. Un peu deçu car dans QB cette manip n'est pas necéssaire, d'ou ma dificulté. Mais bon, il faudra que je m'habitue.
J'ai testé ton code et j'ai un message d'erreur (33) in english à la ligne 80, que moi y'en a pas comprendre. Pourtant je ne vois pas d'erreur dans ton code.
Je ne te lache pas, mais je suis un têtu et j'ai vraiment envie de refaire sur PANORAMIC mon logiciel de Compte perso que j'utilise depuis presque 10 ans et dont je suis fiere (comme si j'avais un Bar-Tabac) car il marche à merveille. Et qui sait, en faire profiter d'autre utilisateurs de PANORAMIC.
Encore Merci et à plus | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: PROBLEME DE GESTION DE FICHIER Dim 17 Mai 2009 - 10:21 | |
| Voici en français la liste des erreurs, que j'avais posté sur ce forum en novembre dernier. Une prochaine version permettra de choisir la langue des libellés d'erreurs et permettra d'ajouter de nouvelles langues. L'erreur 33 à la ligne 80 signifie que la condition logique de la boucle WHILE ne peut être évaluée. C'est bizarre, lorsque j'exécute ce code je n'ai pas cette erreur. As-tu recopié TOUT le code? Car la ligne 80 utilise la variable j que j'ai déclaré à la ligne 4 par dim n,j,k. S'il faut "démonter" la ligne par des boucles WHILE/END_WHILE pour trouver la position des espaces afin de séparer cette ligne en 3 parties, c'est parce que tu as toi-même choisi d'utiliser des espaces comme séparateur entre tes 3 champs sur une même ligne. C'est sûr que si tu avais choisi de les mettre en séquence, ou même de faire 3 fichiers, le code aurait été beaucoup plus simple. Je n'ai fait que de te proposer un code qui respecte ta manière d'enregistrer 3 champs sur la même ligne en fonction du source n°1 que tu as posté ... Je veux seulement dire que le fait que tu colles 3 variables sur une même ligne (en les concaténant) oblige ensuite à un certain traitement pour les "décoller" lors de la relecture. Si pour l'écriture tu faisais: file_writeln 1,util$(n) file_writeln 1,mdp$(n) file_writeln 1,grad$(n) Alors la relecture serait: file_readln 1,util$(n) file_readln 1,mdp$(n) file_readln 1,grad$(n) sans passer par les boucles while... mais ce n'est pas ce que tu as choisi de faire... - Code:
-
Num Français 001 Plus d'OBJETS 3D que le Nombre Autorisé 002 Plus de IF que le Nombre Autorisé 003 Plus de ELSE que le Nombre Autorisé 004 Plus de END_IF que le Nombre Autorisé 005 Plus de END_IF que de IF 006 Plus de IF que de END_IF 007 Plus de ELSE que de IF 008 Plus de ELSE que de END_IF 009 Plus de NEXT que de FOR 010 Plus de FOR que de NEXT 011 Plus de Boucles FOR/NEXT que le Nombre Autorisé 012 Plus de END_WHILE que de WHILE 013 Plus de WHILE que de END_WHILE 014 Plus de Boucles WHILE/END_WHILE que le Nombre Autorisé 015 Plus de Boucles REPEAT/UNTIL que le Nombre Autorisé 016 Plus de UNTIL que de REPEAT 017 Plus de REPEAT que de UNTIL 018 Plus de END_SELECT que de SELECT 019 Plus de SELECT que de END_SELECT 020 Plus de Structures SELECT/END_SELECT que le Nombre Autorisé 021 Plus de CASE que le Nombre Autorisé 022 Erreur dans la Valeur après CASE 023 Deux CASE avec la Même Valeur 024 Expression Incorrecte : Erreur dans le Nombre de Paramètres 025 Il manque "=" 026 Il manque "TO" 027 Nom de Variable Incorrect 028 Variable Non Déclarée (DIM) 029 Expression Arithmétique Incorrecte : +++ 030 Indice de Tableau Hors Limites 031 Expression Incorrecte dans une Variable Indexant un Tableau 032 Instruction Inconnue 033 Expression Logique Incorrecte : +++ 034 END_IF Correspondant Introuvable 035 Nom Déjà Défini 036 Trop de Dimensions dans un Tableau 037 Le Nom Utilisé est Réservé pour une Fonction 038 Taille de Tableau Incorrecte 039 Dépassement de la Capacité Autorisée du Tableau 040 Plus de Variables que le Nombre Autorisé 041 Boucle FOR/NEXT : la Variable Doit Etre un Entier Simple ou Réel Simple 042 Boucle FOR/NEXT : Expression START Incorrecte : +++ 043 Erreur dans la Boucle FOR/NEXT 044 Boucle FOR/NEXT : Expression END Incorrecte : +++ 045 Boucle FOR/NEXT : Expression STEP Incorrecte : +++ 046 Expression Incorrecte dans le Numéro d'OBJET : +++ 047 Numéro d'OBJET Hors Limites 048 Expression Incorrecte 049 Le Système Ne Permet Pas de Jouer un Son 050 Commande Non Applicable Pour Ce Type d'OBJET 051 L'OBJET N'existe Pas (Pas Créé) 052 Expression STRING Incorrecte : +++ 053 Expression Incorrecte dans le Numéro d'OBJET 3D : +++ 054 Expression Incorrecte dans le Numéro de SPRITE : +++ 055 Expression Incorrecte dans le Numéro de FICHIER : +++ 056 Label Non Valide 057 WAIT Doit Etre entre 1 et 30000 058 Boucle FOR/NEXT : Erreur dans la Structure 059 Pas trouvé de DATA 060 Plus aucune Donnée 061 STOP à la Ligne 062 OBJET Déjà Défini 063 La Valeur Doit Etre Comprise entre -2000 et 2000 064 Erreur dans la Structure SELECT / END_SELECT 065 Pas trouvé de END_IF Correspondant 066 Pas trouvé de END_WHILE Correspondant 067 Pas trouvé de REPEAT Correspondant 068 Label Défini Deux Fois 069 Plus de LABELS que le Nombre Autorisé 070 Label Non Déclaré (LABEL) 071 Plus de GOSUB que le Nombre Autorisé 072 La Valeur Doit Etre Comprise entre 1 et 2000 073 La Valeur Doit Etre Comprise entre 1 et 30 074 La Valeur Doit Etre Comprise entre 1 et 20 075 La Valeur Doit Etre Comprise entre 0 et 255 076 Numéro d'OBJET 3D Hors Limites 077 Numéro de SPRITE 3D Hors Limites 078 Numéro de FICHIER Hors Limites 079 Valeur Nulle ou Négative 080 Aucun SCENE3D pour Recevoir cet OBJET 3D 081 Aucune SCENE3D est Créée 082 L'OBJET 3D Existe Déjà 083 RETURN Sans GOSUB 084 FORM0 Ne Peut Pas Etre Supprimé 085 L'OBJET est une CIBLE 2D et Ne Peut Pas Etre Supprimé 086 L'OBJET est une CIBLE des COMMANDES et Ne Peut Pas Etre Supprimé 087 L'OBJET est une CIBLE des AFFICHAGES et Ne Peut Pas Etre Supprimé 088 Un OBJET Ne Peut Etre son Père 089 Impossible à Relier 090 Aucun SCENE2D pour Recevoir ce SPRITE 091 Numéro de SPRITE Déjà Défini 092 L'OBJET 3D N'existe Pas (Pas Créé) 093 Le FICHIER N'existe Pas (Pas Créé) 094 Pas de Boucle FOR / NEXT 095 Pas de Boucle WHILE / END_WHILE 096 Pas de Boucle REPEAT / UNTIL 097 Pas de Structure SELECT / END_SELECT 098 Commande Non Applicable Pour Ce Type d'OBJET 3D 099 Impossible de Charger le FICHIER 100 Un OBJECT 3D Ne Peut Etre Chainé à Lui-Même 101 L'OBJET 3D Est Déjà Chainé 102 Impossible De Créer le Répertoire 103 Numéro de FICHIER Pas Utilisé Pour la Lecture 104 L'OBJET 3D Ne Peut Etre Supprimé: Il a Un ou Plusieurs Fils 105 Impossible de Sauvegarder dans le FICHIER 106 Pas trouvé de WHILE Correspondant 107 Excel Non Démarré 108 Numéro de FICHIER Non Défini 109 Numéro de FICHIER Pas Utilisé Pour l'Ecriture 110 Excel Déjà Démarré 111 Impossible De Démarrer Excel 112 Aucun FICHIER Ouvert 113 Le FICHIER Existe Déjà 114 Le SPRITE N'existe Pas (Pas Créé) 115 Le Port Parallèle est Déjà Ouvert 116 Inpout32.dll N'est Pas En Service 117 La Variable Doit Etre de Type Chain 118 Le Port Parallèle N'Est Pas Ouvert 119 Le Port Parallèle est Déjà Fermé 120 Numéro de PORT Hors Limites 121 La Valeur Doit Etre Supérieure à 0 et Inférieure à 200 122 Le FICHIER Est Déjà Utilisé 123 Un OBJECT 3D Ne Peut Se Pointer Lui-Même 124 L'OBJET 3D N'a Aucun PERE ou Pas Ce PERE 125 Valeur Négative 126 Adresse Mail Non Valide 127 Impossible d'envoyer le Mail
Détails pour les cas d'erreur: 029,033,042,044,045,046,052,053,054,055
01 Utiliser FILE_FIND_FIRST$ avant FILE_FIND_NEXT$ 02 Dépassement d'Indice 03 Plus de SPRITES que le Nombre Autorisé 04 Plus d'OBJETS 3D que le Nombre Autorisé 05 Erreur dans la Sequence Error, Mauvais Caractère 06 Erreur Pendant la Division 07 Nombre Non Compris entre -1 et 1 08 Numéro d'OBJET Hors Limites 09 Numéro d'OBJET 3D Hors Limites 10 L'OBJET N'existe Pas (Pas Créé) 11 Fonction Non Applicable Pour Ce Type d'OBJET 12 Erreur dans une Fonction 13 Numéro de FICHIER Hors Limites 14 Numéro de PORT Hors Limites 15 Numéro de FICHIER Non Défini 16 Le Port Parallèle N'Est Pas Ouvert 17 Appel Interdit d'une Fonction avec Valeur Négative ou Nulle 18 Appel Interdit d'une Fonction avec Valeur Supérieure à 200 19 Appel d'une Fonction avec Caractère Invalide 20 Appel Interdit d'une Fonction avec Valeur Négative 21 Appel Interdit d'une Fonction avec Valeur Supérieure à 255 22 Excel Non Démarré 23 Aucun FICHIER Ouvert 24 Non de Variable Incorrect 25 Variable Non Déclarée (DIM) 26 Expression Incorrecte : +++ 27 Indice de Tableau Hors Limites 28 Expression Incorrecte dans une Variable Indexant un Tableau
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: RE: PROBLEME DE GESTION DE FICHIER Dim 17 Mai 2009 - 11:02 | |
| Oui j'ai bien recopié le Code que tu m'a fourni. Je viens de réessayer et j'ai toujours le même message d'erreur à la même ligne ????
Tu me dis que je pourrais créer mes 3 variables dans 3 fichiers ou de les créer de maniere consécutive. OK, mais par la suite comment je pourrais affecter à util$(1) le mot de passe mdp$(1) sans risque de le mélanger avec celui d'un autre utilisateur (ex: util$(5)).
Merci pour les messages d'erreur en Francais, il faudrait que je parcours tout le forum...
A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: RE: PROBLEME DE GESTION DE FICHIER Dim 17 Mai 2009 - 12:15 | |
| Re Bonjour,
Ne tiens pas compte de mon précédent message, car si j'avais été un peu plus attentif à tes explications......
J'ai refais mon 1er Code en supprimant les espaces et de maniere consécutive, ensuite j'ai rectifier mon 2eme Code (l'original) et ça marche (J'ai enfin inventé un truc qui marche - Citation de Doc dans retour vers le futur I) . Cette fois il n'y a pas de "BUG".
Maintenant que j'ai pigé la gestion des fichiers et des variables, je vais pouvoir m'éclater.
A bientôt pour publication du résultat. Et encore Merci. | |
| | | Contenu sponsorisé
| Sujet: Re: PROBLEME DE GESTION DE FICHIER | |
| |
| | | | PROBLEME DE GESTION DE FICHIER | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |