spheris | #16 Posté le 22/5/2010 à 00:43:00 |
---|
| Lanouec, es tu sur de n'avoir pas nommé un de tes fichiers dans ton projet avec des caractères exotiques genre _, -, ., / , ! .... ou autre ? Si c'est le cas, utilise uniquement des caractères Alphanumériques. Nous avions déjà eu une chose similaire . A bientôt |
LanoueC | #17 Posté le 22/5/2010 à 10:04:00 |
---|
| non Sphéris pas de caractères exotiques le nom des fichiers c'est : GPLv3Anglais et GPLv3Francais
!!!!!!! bizarre de bizarre
LanoueC |
LanoueC | #18 Posté le 22/5/2010 à 10:15:00 |
---|
| D'autres part pour la deuxième erreur 43 Acces forbidden form3 .?.0 Pourquoi une class devient interdite d'accès alors que dans l'exécution de démarrer tout se déroule bien? A quoi pourrait être dû ce refus d'accès? Merci LanoueC |
spheris | #19 Posté le 22/5/2010 à 11:27:00 |
---|
| Petite suggestion, N'y aurait il pas une erreur du aux permissions de fichiers ou répertoires? J'avais retravaillé une fois un programme avec la session root puis impossible de la reprendre en utilisateur lambda du aux permissions. A voir... |
LanoueC | #20 Posté le 22/5/2010 à 11:40:00 |
---|
| Merci Sphéris Je vais essayer de voir çà, il est vrai que parfois je passe en root ! en sait jamais
Alors erreur 45 résolue
dans Fmain a priori
1
| TextArea1Licence.Text = File.Load(Application.Path & "/TEXTE/GPLv3Anglais")TextArea1Licence.Text = File.Load(Application.Path & "/GPLv3Anglais")
|
Ca ne passe pas et déclenche l'erreur 45
par contre application.path &"/dossier/fichier") fonctionne dans le reste du prog !!!! y aurait il une spécificité à FMain???
j'ai changé par :
1
| TextArea1Licence.Text = File.Load("GPLv3Anglais")
|
et là il n'y a plus d'erreur 45
Pour l'erreur 43 ! la class incriminée sert à l'impression par le biais d'un webBrowser qui crée donc un fichier html : peut il s'agir avec cette erreur encore de problème de chemin? comme pour FMain?
LanoueC Merci sphéris et Manu je vais encore tout vérifier |
manu | #21 Posté le 22/5/2010 à 14:20:00 |
---|
Avec Gambas ca roule ! | voila des explications dans la doc qui reprennent (en mieux )ce que j'ai tenté de t'expliquer plus haut.
http://gambasdoc.org/help/cat/path?frJeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) |
LanoueC | #22 Posté le 22/5/2010 à 15:14:00 |
---|
| Merci très utile!
Donc mon code devrait fonctionner :
1
| fichierAimprimer = OPEN Application.Path & "/tempprint.html" FOR CREATE PRINT #fichierAimprimer, TextArea2.Text WebBrowser1.Path = Application.Path & "/tempprint.html" WebBrowser1.Print
|
puisque ces fichiers sont dans le dossier données du projet!!
Mais j'ai toujours l'erreur 43 accès interdit à la class (qui imprime)
Les class et form dans gambas doivent avoir quels droits ne sachant plus j'ai tout mis à rw rw rw mais ca ne change rien non plus
merci LanoueC |
micio | #23 Posté le 22/5/2010 à 18:18:00 |
---|
| File.Load(Application.Path & "/GPLv3Anglais")
Pour concaténer des chemin il est je crois préférable d'utiliser l'opérateur : &/ ce qui donne : File.Load(Application.Path &/ "GPLv3Anglais")
Pas sûr que ça résolve le problème. |
LanoueC | #24 Posté le 22/5/2010 à 20:43:00 |
---|
| Micio ben non ca change rien merci quand même
J'ai toujours cette erreur 43 acces forbidden à une class ! quelle poisse
en plus mes posts sur la mailings list ne sont pas pris en charge : This message was sent to the gambas-user-fr@lists.sourceforge.net mailing list 5 hours and 10 minutes ago but has not yet been accepted.
Bon ben je suis perdue là! a + merci
LanoueC |
manu | #25 Posté le 22/5/2010 à 21:42:00 |
---|
Avec Gambas ca roule ! | Ne t'inquiètes pas, ta demande à été pris en compte dans la mailing list, je l'ai vu... mais personne ne t'as répondu , c'est tout. ...
Tiens consulte ce post, Gambix nous explique ici les chemins de fichiers sous gambas.Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) |
LanoueC | #26 Posté le 22/5/2010 à 22:42:00 |
---|
| Ben voilà je pose le code de la Class incriminée au cas ou ce soit quelquechose qui me crève les yeux et que je ne vois pas c'est un peu long mais claire je pense
donc le soucis qui fait erreur 43 est là dedans !!! Mais ou? sherlock where are you?
1
| ' Gambas class filePUBLIC Grabbing AS PicturePUBLIC TestAerea AS StringPUBLIC IMP AS ImagePUBLIC msg AS StringPUBLIC Copier AS StringPUBLIC pImage AS String'PUBLIC Insertion AS BooleanPUBLIC SUB _new()ENDPUBLIC SUB Form_Open()DIM msg AS StringDIM ImageDraw AS PictureDIM fichierCopier AS FileDIM fichierAimprimer AS FileDIM Aimprimer AS File'****************************ME.Center '********************************************************************************************************** 'Récupération des variables dans la Class2Resultat' ************************************************* msg = Module1EchangeResultat.ResultatResumeModule ImageDraw = Module1EchangeResultat.ImageDrawModule ImageDraw = ImageDraw.Image.Stretch(200, 200).Picture 'stretch afin de redimentionner proportionnellementTextArea1.Text = Module1EchangeResultat.ResultatTextModule'************************************************************************************************************'*******************************************************************************************************************'***************************ici ON S'OCCUPE DU RESULTAT PRE FORMATÉ Donc HTML ************************************'*************************************************************************** '1°) *** Créer un fichier pour enregistrer le resultat de Grab() ******** 'On efface le chemin du fichier s'il existeIF Exist(Copier) THEN KILL Copier 'on écrit le chemin du fichier qui va être créerCopier = Application.Path & "/Capture.png"'Copier = "Grab.png" 'on crée un fichier ayant pour chemin Copier fichierCopier = OPEN Application.Path &/ "Capture.png" FOR CREATE fichierCopier = OPEN Application.Path &/ "Capture.png" FOR WRITE ImageDraw = Module1EchangeResultat.ImageDrawModule ImageDraw = ImageDraw.Image.Stretch(200, 200).Picture ImageDraw.Save(Copier)'**********************************************************************'********************************************************************************************************************'2°) *** ON importe Textaerea1 et l'image Copier dans une nouvelle Texteaerea "invisible" pour imprimer en Htmlmsg = Module1EchangeResultat.ResultatResumeModule TextArea2.ClearTextArea2.Text = "<html>"TextArea2.Text &= "<head>\n"TextArea2.Text &= "<meta content='text/html;charset=UTF-8'http-equiv='Content-Type'>\n"TextArea2.Text &= "<title> Prod</title>\n"TextArea2.Text &= "<meta content ='Gambas2' name = 'LanoueC'>\n"TextArea2.Text &= "</head>\n"TextArea2.Text &= "<body>\n "TextArea2.Text &= "<DIV style ='text-align:center;'><small>" & msg ' le message est le resultat traité dans la form principaleTextArea2.Text &= "<br>\n"TextArea2.Text &= "<br>\n "TextArea2.Text &= "<img style = 'width: 200 px; height: 200 px; ' alt = ' Le trace ' src ='"TextArea2.Text &= Copier & " '> <br>\n" TextArea2.Text &= "<br>\n "TextArea2.Text &= "<small> Nota! pour la suite Ne pas OUBLIER : Il ne faut Aucun espace dans le code HTML</small></div>\n "TextArea2.Text &= "</DIV>\n "TextArea2.Text &= "</body>\n "TextArea2.Text &= "</html>\n"'***************************************************************************************************'***************************************************************************************************'***********************Aperçu a l'écran de form_open dans webBrowser1*******************************'***************************************************************************************************'3°) On crée un fichier pour recevoir cette nouvelle texaerea et on l'imprime dans un webBrowserIF Exist(Application.Path &/ "tempprint.html") THEN KILL Application.Path &/ "tempprint.html"fichierAimprimer = OPEN Application.Path &/ "tempprint.html" FOR CREATE PRINT #fichierAimprimer, TextArea2.Text WebBrowser1.Path = Application.Path &/ "tempprint.html" WebBrowser1.Print END'******************************'****************************************************************************************************'***************************************Imprimer le Résultat Pré formaté********************************PUBLIC SUB Button1ImprimerFORMATE_Click()WAIT 5WebBrowser1.PrintEND'************************************************************************************************************PUBLIC SUB Button1Quitter_Click() ME.CloseEND'******************************PUBLIC SUB Button1Modifier_Click() Panel3Web.Visible = FALSE Panel1Text.Visible = TRUEEND'********************************* Modifier ===> on passe en format TextePUBLIC SUB Button1Apercu_Click()DIM Aimprimer AS FileDIM TextAconvertir AS StringDIM Ligne AS String'*******************TextArea1.Visible = FALSEWebBrowser2.Visible = TRUE'*****************'******************TextArea4Apercu.Text = TextArea1.Text'*******************FOR EACH Ligne IN Split(TextArea4Apercu.Text, "\n")Ligne = Ligne & "<br>\n"Ligne = Replace(Ligne, " ", " ")Quote(Ligne)TextAconvertir &= LigneNEXT Trim(TextAconvertir)'******************'**************TextArea4Apercu.Text = TextAconvertir'**************'***************************************TextArea3.ClearTextArea3.Text = "<html>"TextArea3.Text &= "<head>\n"TextArea3.Text &= "<meta content='text/html;charset=UTF-8'http-equiv='Content-Type'>\n"TextArea3.Text &= "<title> Prod</title>\n"TextArea3.Text &= "<meta content ='Gambas2' name = 'LanoueC'>\n"TextArea3.Text &= "</head>\n"TextArea3.Text &= "<body>\n "TextArea3.Text &= "<small>" TextArea3.Text &= "<br>\n"TextArea3.Text &= TextArea4Apercu.TextTextArea3.Text &= "<br>\n "TextArea3.Text &= "<img style ='width: 200 px; height: 200 px;' src ='" & Copier & "'><br>\n" TextArea3.Text &= "<br>\n "TextArea3.Text &= "3 °) alors ? OUI ou NON Ici c le text\n "'TextArea3.Text &= "</DIV>\n "TextArea3.Text &= "</body>\n "TextArea3.Text &= "</html>\n"'*********************************'*********************************IF Exist(Application.Path &/ "temptext.html") THEN KILL Application.Path &/ "temptext.html"Aimprimer = OPEN Application.Path &/ "temptext.html" FOR CREATE PRINT #Aimprimer, TextArea3.Text'*********************************'*********************************'on affiche dans le web Browser2WebBrowser2.Path = Application.Path &/ "temptext.html"'*********************************'*********************************Button1ImprimerText.Enabled = TRUE ' possible puisque apercu VU donc web Browser pret a impressionEND'******************************************************************************************************************PUBLIC SUB Button1ImprimerText_Click() WebBrowser2.Path = Application.Path &/ "temptext.html" WebBrowser2.Print END'*****************************************************************************************************************PUBLIC SUB TextArea1_KeyPress()DIM p AS String'******************************Touche Tab******* Prob avec Textarea donc : IF Key.code = 4097 THEN p = TextArea1.PosSTOP EVENT 'pour éviter l'avancement du curseur en plus de   suivantTextArea1.Insert(" ")TextArea4Apercu.pos = pTextArea4Apercu.Text = TextArea1.TextTextArea1.Text = Replace(TextArea1.Text, " ", Space(18))TextArea1.Pos = Val(p) + 18ENDIF END'**********************************************************************************************************PUBLIC SUB Button1EffaceTextarea1_Click() TextArea1.ClearENDPUBLIC SUB Button1FermerApercu_Click() WebBrowser2.Visible = FALSE TextArea1.Visible = TRUE Button1ImprimerText.Enabled = FALSEEND
|
il y a beaucoup de commentaire '********* mais je trouve cela bien pour séparer les tapes intermédiaires
Bonne nuit à tous LanoueC |
manu | #27 Posté le 23/5/2010 à 08:17:00 |
---|
Avec Gambas ca roule ! | ca va pas t'avancer beaucoup mais l'erreur 43 c'est accès interdit a un répertoire ou a un fichier, pas à la classe en elle même...Regarde les droits sur les fichiers que tu lit ou dans lequel tu écris.
Cette erreur 43, tu l'as qu'a partir de l'exécutable ou tu l'as en lançant l'application depuis l'IDE ?
Pour test, tu devrais mettre tous tes fichiers (txt et ht) en dehors du dossier du projet et voire si tu as le même problème ou pas. Si ca le résous, vois après comment faire pour que l'on puisse lire et écrire dans un fichier présent dans le dossier de l'application.Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) |
LanoueC | #28 Posté le 23/5/2010 à 10:36:00 |
---|
| Bonjour et Bon Dimanche
cette erreur 43 je ne l'ai que à partir de l'exécutable
Pour que cela fonctionne correctement depuis un exécutable, il faut que les fichiers soient dans le dossier Données du projet et/ou dans un dossier quelconque du dossier Données du projet?
Pour les droits, j'ai tout mis à rw rw rw Mais en fait l'application crée ,elle, les fichiers nécessaires en rw, r ,r Donc pour le propriétaire c'est quand même toujours en RW donc il ne devrait pas y avoir de problème d'accès!
Quand tu dis : Pour test, tu devrais mettre tous tes fichiers (txt et ht) en dehors du dossier du projet c'est à dire par exemple sur le bureau, ou le home? Cela ne changera rien, je pense, puisque c'est l'application qui crée elle me ces fichiers
Ben je vais essayer a plus Merci LanoueC |
LanoueC | #29 Posté le 23/5/2010 à 11:06:00 |
---|
| Alors je viens d'enlever ces lignes IF Exist(Application.Path &/ "LeFichier") THEN KILL Application.Path &/ "LeFichier"
Je n'ai plus l'erreur 43 au niveau de l'exécutable Mais l'erreur 43 persiste au niveau du DEB
Le problème se trouve toujours dans mon code ou dans le DEB maintenant?
LanoueC |
LanoueC | #30 Posté le 23/5/2010 à 11:10:00 |
---|
| Je viens de voir que comme cela avec l'exécutable qui fonctionne, les fichiers sont crées et placés dans le dossier ou se trouve l'exécutable (pour moi sur mon bureau) Donc ?
avec le DEB ? ces fichiers seront placés Ou? LanoueC |