SpiderBasic 1.30 est sorti
Parmi les nouveautés à noter l'accès à GoogleDrive
Le 2016-03-24 19:41:40, par comtois, Responsable Purebasic
SpiderBasic 1.30 est sorti, cette version comporte les nouveautés suivantes :
À noter parmi ces nouveautés l'accès à GoogleDrive.
Vous pouvez télécharger la version 1.30 sur votre compte ou tester la version démo (gratuite, complète et limitée à 800 lignes de code).
Télécharger
Source : SpiderBasic
Voir aussi
Forum SpiderBasic
23th march 2016 : Version 1.30
- Ajouté : DisableWindow(), AddKeyboardShortcut(), RemoveKeyboardShortcut()
- Ajouté : OpenFile(), GetWindowColor(), SetWindowColor()
- Ajouté : CountProgramParameters() and ProgramParameter() to get URL params
- Ajouté : #PB_Mouse_Locked and #PB_Mouse_Unlocked support for InitMouse()
- Ajouté : UseGoogleDrive() to access google drive remote files in read and write mode
- Ajouté : #PB_GoogleDriveFile support to ReadFile(), CreateFile() and OpenFileRequester()
- Ajouté : flag parameter to ExportFile() to support GoogleDrive
- Ajouté : #PB_Canvas_Transparent flag for CanvasGadget() to have transparent canvas.
- Modifié : Added a callback parameter to CreateFile()
- Modifié : in the IDE, compiler option server port now needs the server address as well.
- Modifié : NextSelectedFilename() replaced by NextSelectedFile() and SelectedFilename()/SelectedFileID()
- Mis à jour : SoundJS to 0.6.2 and PixiJS to 3.0.10
- Corrigé : divers correctifs de bogues
- Ajouté : DisableWindow(), AddKeyboardShortcut(), RemoveKeyboardShortcut()
- Ajouté : OpenFile(), GetWindowColor(), SetWindowColor()
- Ajouté : CountProgramParameters() and ProgramParameter() to get URL params
- Ajouté : #PB_Mouse_Locked and #PB_Mouse_Unlocked support for InitMouse()
- Ajouté : UseGoogleDrive() to access google drive remote files in read and write mode
- Ajouté : #PB_GoogleDriveFile support to ReadFile(), CreateFile() and OpenFileRequester()
- Ajouté : flag parameter to ExportFile() to support GoogleDrive
- Ajouté : #PB_Canvas_Transparent flag for CanvasGadget() to have transparent canvas.
- Modifié : Added a callback parameter to CreateFile()
- Modifié : in the IDE, compiler option server port now needs the server address as well.
- Modifié : NextSelectedFilename() replaced by NextSelectedFile() and SelectedFilename()/SelectedFileID()
- Mis à jour : SoundJS to 0.6.2 and PixiJS to 3.0.10
- Corrigé : divers correctifs de bogues
À noter parmi ces nouveautés l'accès à GoogleDrive.
Vous pouvez télécharger la version 1.30 sur votre compte ou tester la version démo (gratuite, complète et limitée à 800 lignes de code).
Source : SpiderBasic
Voir aussi
-
dorian833Membre avertiHeureux de voir PureBasic toujours vivant
Le second (après le PSION basic) langage de programmation qui m'a permis de découvrir la programmation il y a une bonne dizaine d'années avant même que je puisses imaginer que j'en ferais mon metierle 25/03/2016 à 19:19 -
comtoisResponsable PurebasicC'est dommage que tu parles de PureBasic sur le forum de SpiderBasic.
Peu importe, tout avis est bon à prendre
Concernant la syntaxe c'est une question de goût, donc là je n'ai rien à dire. Par contre ton exemple me semble un peu lourd , tu pourrais l'écrire ainsi (sauf erreur de ma part) :Code : 1
2
3
4
5
6
7
8
9
10
11
12Procedure.l BuildRequestHeader(*Buffer, DataLength, ContentType$) Chaine$ = "HTTP/1.1 200 OK"+EOL$ + "Date: Wed, 07 Aug 1996 11:15:43 GMT"+EOL$ + "Server: Atomic Web Server 0.2b"+EOL$ + "Content-Length: "+Str(DataLength)+EOL$ + "Content-Type: "+ContentType$+EOL$ + EOL$ PokeS(*Buffer, Chaine$) ProcedureReturn *Buffer EndProcedure
Ensuite je ne comprends pas ta remarque sur la lecture d'un fichier Json , tu parles de javascript et de Python ? tu ne montres pas comment le faire avec PureBasic ou SpiderBasic.
Pour info avec PureBasic ou SpiderBNasic c'est aussi simple que ça :Code : LoadJSON(#JSON, FileName$ [, Flags])
http://www.purebasic.com/french/documentation/json/loadjson.html
Aide en ligne pour la bibliothèque Json SpiderBasic :
http://www.spiderbasic.com/documentation/json/loadjson.htmlle 31/03/2016 à 20:18 -
patmabaMembre actifC'est purebasic en mode weble 25/03/2016 à 13:14
-
SurferIXMembre chevronnéQuel dommage que la syntaxe de PureBasic soit aussi peu lisible : j'ai pris l'habitude de lire/écrire du Python, et PureBasic est tellement rapide que je meurs d'envie de voir un PureBasic, avec toutes ses mêmes fonctionnalités, mais ayant une syntaxe "à la" python.
Quand je lance PureBasic, j'appuie sur "entrée", hop l'éditeur est instantanément affiché (O.o)
Je charge les programmes d'exemple, je les lance, c'est tellement rapide que je ne croyais pas que c'était compilé quand je l'ai essayé, c'est pour cela que je l'ai acheté.
Après... dès que tu pousse et que tu veux écrire pas mal de choses, la syntaxe rend malheureusement illisible, donc impossible à maintenir, un programme. Quel dommage ! Tous les 2-3 mois, je le relance, je bave devant sa rapidité, je fais la mise à jour, je ré-essaie un ou deux exemples, et je quitte... quelle frustration, passer si près d'un truc génial et tout perdre pour ça.
Exemple de code :Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Procedure.l BuildRequestHeader(*Buffer, DataLength, ContentType$) Length = PokeS(*Buffer, "HTTP/1.1 200 OK"+EOL$) : *Buffer+Length Length = PokeS(*Buffer, "Date: Wed, 07 Aug 1996 11:15:43 GMT"+EOL$) : *Buffer+Length Length = PokeS(*Buffer, "Server: Atomic Web Server 0.2b"+EOL$) : *Buffer+Length Length = PokeS(*Buffer, "Content-Length: "+Str(DataLength)+EOL$) : *Buffer+Length Length = PokeS(*Buffer, "Content-Type: "+ContentType$+EOL$) : *Buffer+Length Length = PokeS(*Buffer, EOL$) : *Buffer+Length ; Length = PokeS(*Buffer, "Last-modified: Thu, 27 Jun 1996 16:40:50 GMT"+Chr(13)+Chr(10) , *Buffer) : *Buffer+Length ; Length = PokeS(*Buffer, "Accept-Ranges: bytes"+EOL$ , *Buffer) : *Buffer+Length ; Length = PokeS(*Buffer, "Connection: close"+EOL$) : *Buffer+Length ProcedureReturn *Buffer EndProcedure
Code : 1
2
3
4
5
6
7
8
9If RequestedFile$ = "" RequestedFile$ = DefaultPage$ Else *t.tmp = @RequestedFile$ While *t\a <> 0 If *t\a = '/' : *t\a = '\' : EndIf *t+1 Wend EndIf
Code : 1
2
3var data = Bacon.fromNodeCallback(fs.readFile, "data.json", "utf8").map(function(event){ return JSON.parse(event); }).toProperty();
Code : 1
2
3import json with open('data.json') as data_file: data = json.load(data_file)
. le 31/03/2016 à 17:37 -
SurferIXMembre chevronnéLes codes PureBasic sont des copier/coller des exemples fournis avec PureBasic je n'ai rien inventé du tout, donc si le code est mauvais cela implique que le code des exemples est mauvais...
Quant à mon deuxième exemple, le principe est :Code : 1
2
3
4
5*t.tmp = @RequestedFile$ While *t\a <> 0 If *t\a = '/' : *t\a = '\' : EndIf *t+1 Wend
Voici le code juste au dessus écrit en Python :
Code : t.a = t.a.replace('/', '\')
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16tag_groupe_dst = (idx_a < idx_b ? tag_groupe_a : tag_groupe_b); for (i = 0; i < psrc->len; i++) { psrc->tab[i]->tag = tag_groupe_dst; } /* Allocation dst = (taille dst + taille src) : */ tab_tmp = (struct cell **) realloc(pdst->tab, (pdst->len + psrc->len) * sizeof(struct cell *)); if (tab_tmp == NULL) { snprintf(buffer_erreur, sizeof(buffer_erreur) - 1, "Erreur de ré-allocation d\'un groupe, " "plus assez de mémoire"); return -1; } pdst->tab = tab_tmp;
En Python, voici un code qui a quatre ans :Code : 1
2
3
4
5
6
7
8
9
10
11
12
13going = True while going: clock.tick(60) for event in pygame.event.get(): if event.type == QUIT: going = False elif event.type == KEYDOWN: if event.key == K_ESCAPE: going = False elif event.key == K_q: going = False elif event.key == K_RETURN: going = False
Exemple : pourquoi des antislashes et pas des slashes, ou des points ? Pourquoi la première lettre en majuscule alors qu'absolument aucun autre langage n'a un mot clé avec sa première lettre en majuscule.
Exemple d'origine :Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Structure Quake3Mods Alias.s NomReel.s Version.s EndStructure NewList Mods.Quake3Mods() If ReadFile(0, "Quake3Launcher.prefs") While Eof(0) = 0 AddElement(Mods()) Mods()\Alias = ReadString(0) Mods()\NomReel = ReadString(0) Mods()\Version = ReadString(0) Wend
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16structure Quake3Mods Alias.s NomReel.s Version.s ends newList Mods.Quake3Mods() if ReadFile(0, "Quake3Launcher.prefs") while Eof(0) = 0 addElement(Mods()) mods().Alias = ReadString(0) mods().NomReel = ReadString(0) mods().Version = ReadString(0) wend
Bref je pense sincèrement que le PureBasic a un gros potentiel et qu'il est près d'être une vraie alternative à d'autres gros, mais il a ces petits problèmes, qui empêchent une pérennité du développement et cela me gêne et me fait râler à la fois.le 31/03/2016 à 23:45 -
comtoisResponsable PurebasicIl s'appelle comment l'exemple (si c'est un fichier exemple) ? Sinon si c'est un code intégré dans la doc, je le trouve dans quelle bibliothèque ? Histoire de comprendre le contexte de cet exemple. Peut-être qu'il mérite d'être corrigé ?Voici le code juste au dessus écrit en Python :
Code : t.a = t.a.replace('/', '\')
Code : UneChaine$ = ReplaceString(UneChaine$,"/","\")
Pourquoi la première lettre en majuscule alors qu'absolument aucun autre langage n'a un mot clé avec sa première lettre en majuscule.etc c'est juste une suggestion, mais la lisibilité d'un langage est d'abord sa nature première, et ça incite / ou pas / à aller vers ce langage. Les "->" aussi, comme en Php, C++, ou C permettent de bien séparer les éléments/structures et de les rendre plus lisibles.Bref je pense sincèrement que le PureBasic a un gros potentiel et qu'il est près d'être une vraie alternative à d'autres gros, mais il a ces petits problèmes, qui empêchent une pérennité du développement et cela me gêne et me fait râler à la fois.le 01/04/2016 à 1:33 -
SurferIXMembre chevronnéC'est le code de "PureBasic\Examples\Sources - Advanced\Atomic Web Server"
Quant à s'adapter, c'est un vieux qui parle, dans l'ordre de mes évolutions (je ne parle que des langages, pas de ce qu'il y a autour (rien sur Symfony, NodeJS etc)) : ADA, C, C++, Java, Visual Basic, Delphi, Php, PureBasic, JavaScript, LUA, Python
J'ai été expert Delphi et il y a deux ans expert Php. Au travers de tout ça, pendant plus de 20 ans, j'ai évolué vers une seule chose : la lisibilité car, au final, c'est là dessus que tout se base.
C’est la philosophie de Python qui m’a plu le plus : le langage est le plus épuré de tous les langages. Tout fonctionne à l’indentation. Terminés les points-virgules à la fin de chaque ligne, les accolades pour les boucles et conditions, et le code d'autres personnes illisible. C’est tout de suite plus lisible. Je me retrouve du coup à coder pas mal de fonctionnalités en très peu de lignes de code, et c’est très plaisant. C'est juste ce qui me manque en PureBasic.
L'exemple de ton préprocesseur est bien, mais il ne devrait pas exister : la lisibilité par tout le monde, c'est ce qui change tout dans un langage. C'est bien, mais faire simplement un ReplaceString() c'est loin d'être pérenne (crois moi j'en ai fait des #define en C qui changent caractère par caractère jusqu'à récemment et je connais bien). En tous les cas merci pour ce commentaire, dès que je peux je reviendrai et je verrai si je peux me faire un preprocesseur et si cela devient plus lisible.le 01/04/2016 à 9:30 -
majikeyricFutur Membre du ClubLe code PureBasic illisible ? On aura tout lu...le 01/04/2016 à 17:51
-
glad33bxMembre régulier
de la pub pour un produit commercial !
Superle 25/03/2016 à 8:40