dim 2 commandes

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

dim 2 commandes

Message par Le psychopathe »

voila j'ai 2 petites commandes qui sont très utiles en dark basic.

SAVE ARRAY Nom de Fichier, Nom de Tableau(0)
LOAD ARRAY Nom de Fichier, Nom de Tableau(0)


SAVE ARRAY
Cette commande sauvegarde le contenu d'un tableau dans le fichier spécifié. Il est fortement recommandé
de définir un tableau à l'identique lors de la sauvegarde et du chargement des données. Lorsque vous
spécifiez le nom du tableau, les numéros d'indexes sont ignorés, même s'il vous est tout de même demandé
de les spécifier.

Bon voilà. :? @+
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tiens voilà deux procédures avec 3 lignes de code utiles chacune ; j'ai vu après coup que Denis et Comtois avaient posté des exemples de code, ça reste la même chose. :D
Ne pas utiliser de structure avec des chaines, si tu veux vraiment inclure du texte, je te posterais un nouvel exemple.

Code : Tout sélectionner

Structure test
  a.l
  b.l
  c.l
EndStructure 

Dim array.test(20)
Dim array2.test(20)

For a=0 To 20
  array(a)\a=a
  array(a)\b=a*2
  array(a)\c=a*3
Next a

Procedure SaveArray(Nom_de_Fichier.s, *array, size.l)
  If *array
    If size
      ID= CreateFile(#PB_Any, Nom_de_Fichier)
      If ID 
        WriteLong(PeekL(*array-8))
        WriteData(*array, PeekL(*array-8)*size)
        CloseFile(ID)
        ProcedureReturn 1
      EndIf
    EndIf 
  EndIf 
  ProcedureReturn 0
EndProcedure 

Procedure LoadArray(Nom_de_Fichier.s, *array, size.l)
  If *array
    If size 
      ID= OpenFile(#PB_Any,Nom_de_Fichier)
      If ID 
        ReadData(*array,ReadLong()*size) 
        CloseFile(ID) 
        ProcedureReturn 1
      EndIf 
    EndIf 
  EndIf 
  ProcedureReturn 0
EndProcedure 

If SaveArray("h:\test", @array(0), SizeOf(test))=0
  MessageRequester("Info","Echec de la sauvegarde")
EndIf 

If LoadArray("h:\test", @array2(0), SizeOf(test))=0
  MessageRequester("Info","Echec du chargement")
EndIf   

For a=0 To 20
  Debug Str(array2(a)\a)+"   "+Str(array2(a)\b)+"   "+Str(array2(a)\c)
Next a
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

merci

Message par Le psychopathe »

Je te remercie mais franchement c'est quand même plus simple si les 2 commandes étaient faites. Rapide, efficace même si l'on peut programmer cela serait sympa que fred les ajoutes.
Pour l'instant avec ton code je vais en faire une dll.
@++ :D
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Pourquoi tu n'en fais pas une librairie!
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

lol

Message par Le psychopathe »

Je comprends pas trop là. Une dll c'est une librairie non ? Sinon expliquez moi. Sinon avant de faire sa je finis mon petit programme entre quelque heures de wolfenstein et mon site lol.

Sinon je le dis encore une fois cela serait sympa d'ajouter ces 2 fonctions au Pure basic.
@++
:D
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Sous entendu librairie statique;

Une librairie statique est du code compilé qui est inclus dans le prog final lorsque tu utilise une de ses fonctions.

Tailbite permet de créer des librairies statiques, tu le trouveras ici:
http://inicia.es/de/elchoni/TailBite/
Répondre