le Survival Guide de la V4
le Survival Guide de la V4
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 !
telechargeable ici
http://www.xs4all.nl/~bluez/datatalk/survival_guide.arj
cela permet de la consulter Hors ligne !
- Le psychopathe
- Messages : 764
- Inscription : jeu. 03/mars/2005 19:23
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
http://www.xs4all.nl/~bluez/datatalk/purebasic.htm#top
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
http://www.xs4all.nl/~bluez/datatalk/purebasic.htm#top
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.
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
2 Nouveaux types de variables :
a.q = 64 bits (quad)
a.d = Double Flottant ( 64 bits aussi )
Nouvel opérateur : Not
Nouvel opérateur : Xor
A=Not b -> ; Impossible !!!
Nouvelle fonction pour accélére l’affectation des valeurs à une structure
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)
Macros :
Redim permet de redimensionner un tableau sans perdre son contenu
Fonctions pour importer fonctions d’une lib externe :
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()
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 !
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
Code : Tout sélectionner
Debug #True XOr #False ; -> Renvoie #True
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
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)
Code : Tout sélectionner
Macro Test(Expression)
If (Expression)
Debug "Vrai"
Else
Debug "Faux"
EndIf
EndMacro
Test(1=1)
test(1=0)
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)