PureBasic
https://www.purebasic.fr/french/

【SpiderBasic 2.00】 est disponible
https://www.purebasic.fr/french/viewtopic.php?f=25&t=16348
Page 22 sur 23

Auteur:  blendman [ Lun 19/Juin/2017 7:46 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Ar-S a écrit:
Peut être que ton avast ( :roll: ) a viré un fichier nécessaire ou a bloqué son execution.
Tu devrais peut être réinstaller SB dans un auter dossier et avant celà, exclure ce dossier de la zone de recherche d'avast.

c'est ce que j'ai fait et ça ne change rien, hélas ^^.

je vais devoir l'utiliser sur un autre ordi (heureusement, j'ai un petit portable dont je me sers de temps en temps (le T100 d'ASus)).

Auteur:  falsam [ Lun 26/Juin/2017 15:35 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Réponse tardive
Blendman a écrit:
avast m'a trouvé en mars 2017 un virus sur spiderbasic, dans ce fichier : spiedrbasic/compilers/sbmongoose.exe. C'est un fichier de spiderbasic ?
Oui. C'est un web serveur local léger (ne gère pas PHP) permettant de visualiser le résultat d'une compilation.

Pour ton souci d'installation.

Désactive provisoirement Avast
Rendez vous dans ton dossier c:\Users\TonNomUtisateur\AppData\Roaming
Supprime le dossier SpiderBasic
Installe à nouveau SpiderBasic.

Active à nouveau Avast si vraiment tu le souhaites.

J'ai essayé sur un pc ayant Avast comme antivirus et je n'ai eu aucune alerte.

SpiderBasic fonctionne correctement.

Auteur:  blendman [ Ven 07/Juil/2017 10:06 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

salut

Merci pour les infos.
J'ai beaucoup testé spiderbasic ces derniers temps, pour réaliser des applications "un peu médicales" (pour du sevrage de médicament), et je trouve que c'est vraiment top !

J'ai 2 questions :

1) peut-on récupérer les données qu'on récolte (ex du texte) d'une callback ? J'ai essayé avec une variable globale, mais ça ne marche pas.
En gros, je voudrais proposer une application en français et en anglais et pour ça, je dois lire le fichier , mais je ne parviens pas à passer l'info (le texte) entre 2 procédures.

2) Puis-je ouvrir une page internet à partir d'un menuitem ou d'un gadget ? Si oui, comment ?

Je voudrais un truc très simple : genre : je clique sur un bouton ou un menuItem et la page web s'ouvre dans firefox par exemple.

j'ai essayé comme ça, mais ça ne marche point :
Code:
Procedure MenuHandler()
 
  Select EventMenu()                                   
    Case #Menu_OutilPlan
      OpenFile(#PB_Any, "http://electrotracks.free.fr/aide/index.html", @Callback)
     
    Case #Menu_BenzoConvert
       OpenFile(#PB_Any, "http://electrotracks.free.fr/aide/benzo_equivalence/index.html", @Callback)
   EndSelect
   
EndProcedure


la calback est la même que dans l'exemple
Code:
Procedure Callback(Status, Filename$, File, SizeRead)
    Select Status
      Case #PB_Status_Loaded
        ; File correctly loaded
        Message("ok","ok")
      Case #PB_Status_Saved
        ; File correctly saved
       
      Case #PB_Status_Progress
        ; File loading in progress, use FileProgress() get the current progress

      Case #PB_Status_Error
        ; File loading has failed
         Message("Error","mince ça marche po...")
    EndSelect
EndProcedure


Edit :
pour le 2), je suis passé par un hyperlink avec la méthode de falsam trouvée ici :
http://forums.spiderbasic.com/viewtopic ... +url#p2717

J'imagine que ça marche aussi pour le menu ou n'importe quel gadget en fait (en modifiant bien sûr la procedure runprogram()).

Auteur:  Marc56 [ Ven 07/Juil/2017 12:46 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Je vais peut-être dire n'importe quoi (ce ne sera pas la première fois :mrgreen: )

Mais OpenFile() c'est pour les fichiers locaux.
Donc:
Code:
OpenFile(#PB_Any, "http://electrotracks.free.fr/aide/index.html", @Callback)
Ne fonctionne sans doute pas car le protocole HTTP n'est pas un protocole connecté,
le programme ne peut donc pas maintenir un handle sur le fichier,
ce qui est nécessaire pour les commandes Open qui sont suivies d'un read ou write puis un Close
(pareil en PB)

Dixit la doc de SB sur OpenFile()
http://www.spiderbasic.com/documentation/file/openfile.html
Open an existing file for read and write operations
Fichier de type #PB_LocalFile ou #PB_GoogleDriveFile


Il faut donc que tu télécharges d'abord ton fichier (dans le cache ou le dossier temporaire ?)
HTTPRequest()
http://www.spiderbasic.com/documentation/http/httprequest.html

:wink:

Auteur:  blendman [ Sam 08/Juil/2017 11:53 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Citation:
on ne peut pas ouvrir simplement un fichier texte, charger les infos et ensuite définir les gadgets avec la langue choisi en fonction de ce fichier texte ?
SpiderBasic génére du JavaScript hors avec JavaScript il n'est pas possible d'ouvrir un fichier en modification sur un serveur.

La solution consiste à exécuter un script PHP avec la fonction HTTPRequest() avec passage de paramètres.

HTTPRequest(Type, URL$, Parameters, Callback [, UserData [, Headers()]])

https://www.spiderbasic.com/documentati ... quest.html

Auteur:  Marc56 [ Sam 08/Juil/2017 13:25 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Javascript est un langage qui s’exécute sur le poste client (dans le navigateur) et communique par HTTP avec le serveur.
Ce n'est donc pas lui (javascript) qui impose la restriction d'accès en écriture sur le serveur mais bien le protocole HTTP.
(Heureusement qu'un simple langage client ne peut pas écrire sur un serveur web)

HTTPRequest() est une fonction SpiderBasic, pas besoin de PHP

Si on a accès à PHP donc au côté serveur, autant tout écrire en PHP, c'est plus simple.
Les utilisateurs pourront ainsi utiliser l'application même avec javascript désactivé.

:wink:

Auteur:  falsam [ Sam 08/Juil/2017 14:50 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Marc56 a écrit:
HTTPRequest() est une fonction SpiderBasic, pas besoin de PHP
HTTPRequest() cest bien aussi ce que j'ai précisé par contre tu envoies une url (en général un script php) pour par exemple modifier un fichier ou mettre à jour une base de données.

Bien évidement, le script php doit être codifier de telle manière qu'il ne puisse pas être exécuter en ligne de commande depuis un navigateur.

Je suis curieux de voir comment tu comptes avec la commande HTTPRequest() mettre à jour un fichier txt par exemple sans faire appel à un script PHP ou ASP ou autres.

Auteur:  Marc56 [ Sam 08/Juil/2017 15:21 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Je n'irais pas plus loin dans mes essais car je n'utilise pas (pour l'instant) :wink:

Auteur:  blendman [ Sam 08/Juil/2017 17:15 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Falsam : tu as édité mon message au lieu d'y répondre, résultat, il manque la moitié des informations...

Je répète donc :
est-il possible d'ouvrir un fichier texte (situé sur le serveur), de lire les informations de ce fichier (par exemple pour la langue) et ensuite de modifier notre page (par exemple, mettre les gadgets en français).

Je sais qu'avec un fichier local on peut le faire, alors, il faut que je transfère le fichier de langue sur le poste client puis que je l'ouvre et que je change les paramètres de ma page (langue) ?
ou existe-t-il un autre moyen de faire ça :
- ouvrir un fichier du serveur
- et se servir de ces informations pour modifier par exemple le texte de mes gadgets

Je ne comprends pas comment faire avec httprequest()
je dois utiliser get ou post ?

:)

Auteur:  MetalOS [ Mer 16/Aoû/2017 8:54 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Salut les gars. Quelqu'un aurai un exemple d'application Android fait avec SpiderBasic, voir même sur le playstore histoire de voir ce que ça donne.

Auteur:  djes [ Mer 16/Aoû/2017 9:57 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Blendman> Sans avoir pratiqué sb, je pense qu'il faut pratiquer la logique client/serveur, à savoir que tu établis un dialogue à partir du client qui dise au serveur qu'il doit modifier certaines chaînes. Tu imagines bien que ce dialogue ne doit pas pouvoir être fait par n'importe qui, et qu'il faut bien carèner le tout pour éviter des intrusions. Il faut par exemple s'assurer de la validité des chaînes de caractères, limiter le nombre de modifications par seconde (pour éviter les attaques type déni de service), et, évidemment pour moi, prévoir un minimum d'authentification.

Auteur:  blendman [ Mer 06/Sep/2017 9:50 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

OUi, djes, je comprends bien ;)

Mais en fait, ce que je recherche c'est simplement un changement de langue, par exemple avec un combobox, tu change la langue et ça change alors la langue sur la page.
Je sais faire en php mais je n'arrive pas à ouvrir un fichier txt situé sur le serveur et qui changerait alors la langue si on change la langue via le combobx du site.
- je suis sur la page du site
- je clique sur la combobox
- je choisis Fr ou eng
- et la page met à jour la langue, en allant chercher sur le serveur la langue dans un fichier texte

Je sais tout faire, sauf que quand j'ouvre le fichier texte, ensuite, je ne sais pas comment garder le texte "lu" dans ce fichier, une variable global ne semble pas marcher.
c'est quand même ballot ^^

Auteur:  djes [ Mer 06/Sep/2017 12:39 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Difficile de dire ce qui ne fonctionne pas, en tous cas il me semble qu'il faut une variable de session ou un cookie. Je ne sais pas comment c'est géré en SB.

Auteur:  falsam [ Mer 06/Sep/2017 13:57 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

Sans PHP et avec la fonction HTTPRequest(), tu récupéres un fichier JSON contenant l'ensemble des tes libelles, message, etc ... en anglais et français par exemple.

Les fonctionnalités JSON vont te permettre de basculer le contenu de ton JSON dans une structure ou une liste ou une map.

Petit exemple à suivre.

Auteur:  falsam [ Mer 06/Sep/2017 14:41 ]
Sujet du message:  Re: 【SpiderBasic 2.00】 est disponible

L'exemple que je vous propose

- Affichage d'une fenêtre full-screen (utilisation du flag #PB_Window_Background)
- Cette fenêtre contient 3 gadgets : Message de bienvenu, un bouton qui ne sert à rien et un combo choix de la langue Français ou Anglais.

:arrow: Demo : http://falsam.com/sbtest/readfile0.html

La configuration de langue est définie dans une structure.
Code:
Structure NewSetup
  Array t0.s(1) ;Message de bienvenue  = "Bienvenu invité !","Welcome guest !"
  Array t1.s(1) ;Bouton qui ne sert à rien = "Cliquez moi","Click me"
EndStructure
Global Config.NewSetup
Le fichier JSON a été généré avec un code PureBasic. Le résultat de ce fichier est
config.json a écrit:
{"t0":["Bienvenu invité !","Welcome guest !"],"t1":["Cliquez moi","Click me"]}

Comment est lu le fichier config.
Le fichier config est un fichier au format JSON se trouvant sur le serveur est lu avec la commande HTTPRequest() faisant appel à un callback
Code:
HTTPRequest(#PB_HTTP_Get, "data/config.json", "", @HttpOnRead())

Que fait le callback ?
Cette procédure callback va extraire le contenu JSON vers la structure
Code:
ExtractJSONStructure(JSONValue(0), @config, NewSetup)

Code.
Code:
Enumeration
  #FontH1
 
  #mf
  #mfLang
  #mfWelcome
  #mfValid
EndEnumeration

;Setup
Structure NewSetup
  Array t0.s(1)
  Array t1.s(1)
EndStructure
Global Config.NewSetup

;Summary
Declare Start()
Declare HttpOnRead(Success, Result$, UserData)
Declare UpdateLang()
Declare Resize()

Start()

Procedure Start()
  LoadFont(#FontH1, "", 18)
 
  OpenWindow(#mf, 0, 0, 0, 0, "", #PB_Window_Background)
 
  TextGadget(#mfWelcome, 10, 10, 200, 22, "")
  SetGadgetFont(#mfWelcome, FontID(#FontH1))
 
  ButtonGadget(#mfValid, 0, 10, 80, 22, "")
 
  ComboBoxGadget(#mfLang, 0, 0, 80, 24)
  AddGadgetItem(#mfLang, -1, "Français")
  AddGadgetItem(#mfLang, -1, "English")
  SetGadgetState(#mfLang, 0)
 
  Resize()
 
  ;Trigger
  BindGadgetEvent(#mfLang, @UpdateLang())
  BindEvent(#PB_Event_SizeDesktop, @Resize())
 
  ;Import and Read JSON file
  HTTPRequest(#PB_HTTP_Get, "data/config.json", "", @HttpOnRead())
EndProcedure

Procedure HttpOnRead(Success, Result$, UserData)
  If Success   
    ;Extract to structure config.NewSetup
    ParseJSON(0, Result$)
    ExtractJSONStructure(JSONValue(0), @config, NewSetup)
   
    UpdateLang()
  Else
    Debug "HTTPRequest(): Error"   
  EndIf
EndProcedure

Procedure UpdateLang()
  Protected Lang = GetGadgetState(#mfLang)
 
  SetGadgetText( #mfWelcome, config\t0(Lang) ) 
  SetGadgetText( #mfValid, config\t1(Lang) )   
EndProcedure

Procedure Resize()
  Protected Width = DesktopWidth(#mf)
  Protected Height = DesktopHeight(#mf)
 
  ResizeGadget(#mfValid, Width - 100, #PB_Ignore, #PB_Ignore, #PB_Ignore)
  ResizeGadget(#mfLang, Width - 100, Height - 50, #PB_Ignore, #PB_Ignore)
EndProcedure

Remarque. la fonction HTTPRequest() ne fonctionne pas si vous testez le code depuis l'IDE de SpiderBasic. Il faut générer la web-application sur votre serveur local ou distant.

Page 22 sur 23 Heures au format UTC + 1 heure
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/