le Survival Guide de la V4

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

le Survival Guide de la V4

Message par Backup »

le Survival Guide de la V4 deviens une archive (Arj)
telechargeable ici
http://www.xs4all.nl/~bluez/datatalk/survival_guide.arj

cela permet de la consulter Hors ligne ! :D
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

c'est quoi le survival guide ? :?:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Le survival guide est un tutorial, ou plutot une sorte de bible du programmeur pour purebasic 3.x et 4.0.

apparemment très connu outre-manche mais moins içi.
il est donc en anglais mais est quand même très intéressant.
franchement j'aime pas le design du site mais on peut pas tout avoir :D

http://www.xs4all.nl/~bluez/datatalk/purebasic.htm#top
Image
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

J'ai lu ce guide et extrait les informations suivantes :

g.s{13} = "abd" Chaine avec taille fixe de 13 octets (abc + 10 code null ) : Pratique pour structure avec taille fixe !

h.c = 'a' Un seul caractère ( 1 octet ou 2 octets si Unicode spécifié dans le compilateur )

isFunction remplacé par GetFunction

inkey : envoie la valeur ascii d’une touche pressée dans une console

Procedure Test(a=4) ; Paramètre optionnel avec valeur par défaut ( 4 dans ce cas )

Protected, Shared, Global, Static peuvent définir une valeur.
Global a=1: Assignation à chaque exécution
Static a=1 : Assignation uniquement à la première exécution -> ; Pratique pour flag
Protected a=2 : Assignation à chaque exécution

Case supporte les plages et les multiples valeurs
Case 1,2
Case 3 To 5

ReadByte(), ReadWord(), ReadString(), etc ->; Spécifier le numéro de fichier en paramètre

Les LinkedList et les listes sont par défaut locales. + On peut les passer en paramètres d’une procédure.

Code : Tout sélectionner

Procedure Test(x())
  SelectElement(x(),5)
  x()=55
EndProcedure

NewList a()
For n=1 To 10
  AddElement(a())
  a()=n
Next

Test(a())
SelectElement(a(),5)
Debug a()
Les chaines peuvent avoir une longueur illimitée

Protection automatique des variables globales quand utilisées en paramètre de procédure
En fait test(44) ne change pas la valeur de a , mais la commande a+1 oui

Code : Tout sélectionner

Global  a

Procedure test(a)
  a+1
  ProcedureReturn a
EndProcedure

Debug test(44) ->; Renvoie 45 + Bug avec la 3.94 car impossible passer variable globale en paramètre d’une procédure !
2 Nouveaux types de variables :
a.q = 64 bits (quad)
a.d = Double Flottant ( 64 bits aussi )

Nouvel opérateur : Not

Code : Tout sélectionner

If Not #False
  Debug "TTTT"
EndIf
Nouvel opérateur : Xor

Code : Tout sélectionner

Debug #True XOr #False ; -> Renvoie #True
A=Not b -> ; Impossible !!!

Nouvelle fonction pour accélére l’affectation des valeurs à une structure

Code : Tout sélectionner

Structure player 
  x.l 
  y.l 
  lives.l 
  bullets.l 
EndStructure 
; 
player1.player 

With player1 
  \x = 10 
  \y = 10 
  \lives = 3 
  \bullets = 100 
EndWith
Swap a,b -> ; Permutte la valeur de deux variables

ResizeWindow / WindowX / WindowY -> ; Spécifier le n° de la fenêtre dans la commande

EventMenu() remplace EventMenuId()
EventGadget() remplace EventGadgetId()

UseFile(), UseDirectory() -> ; abandonné : Spécifier le n° du fichier dans la commande

Pour saisir des caractères unicode dans l’éditeur de PureBasic -> Préférence Editeur : Utiliser le format UTF-8

Pour que le programme utilise unicode : Option du Compileur / Créer Exécutable Unicode

On peut via des PseudoTypes créer des wrapper pour des Dll ( Pratique pour utiliser des fonction de l'api necessitant paramètre unicode )
• p-ascii – Paramètre Ascii 8 bits
• p-unicode – Paramètre 16 bit Unicode (DWCS)
• p-bstr – Paramètre BSTR (Visual Basic)

Code : Tout sélectionner

OpenLibrary(0, "user32.dll") 
Prototype mb5(w_parent_h.l,message.p-unicode ,title.p-unicode ,flags.l) 
mb5.mb5 = GetFunction(0,"MessageBoxW")
mb5(0,"so much work for hello world 5","prototype pseudotype",0) 
Macros :

Code : Tout sélectionner

Macro Test(Expression)
   If (Expression)
      Debug "Vrai"
   Else
      Debug "Faux"
   EndIf
EndMacro

Test(1=1)
test(1=0)
Redim permet de redimensionner un tableau sans perdre son contenu

Fonctions pour importer fonctions d’une lib externe :

Code : Tout sélectionner

Import "Kernel32.lib"
  MessageB(a,b$,c$,d) As "_MessageBoxA@16"
EndImport

MessageB(0,"Body","Test",0)
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Je vois que tu n'as pas lu le readme.html ;)
"Qui baise trop bouffe un poil." P. Desproges
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Effectivement je l'ai pas lu non plus :wink:
Répondre