aldweb

Fermer I. aldweb

Fermer II. Gratuitiels PC

Fermer III. Gratuitiels Palm

Fermer IV. Partagiciels Palm

Fermer V. iziBasic Palm

Fermer VI. Connaissance Palm

Fermer VII. Ordinateur Poche

Fermer VIII. miniPortail

Recherche




Newsletter
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner
298 Abonnés
Webmaster - Infos
Visites

   visiteurs

   visiteurs en ligne

article.gifSCOOP : CPDB bientôt compatible avec HSPascal !
 SCOOP : CPDB bientôt compatible avec HSPascal ! - Posté le 04/10/02

Palm OSDepuis que j'ai découvert CPDB, je rêvais de son portage sur HSPascal. Et comme on n'est jamais mieux servi que par soi-même, je m'en suis donc occupé. C'est maintenant chose faite et PeekPoke sortira courant de la semaine prochaine (c'est là qu'est le SCOOP !) ce portage de CPDB sur HSPascal.

En avant première donc, vous découvrirez dans cet article la facilité déconcertante avec laquelle on arrive à travailler sur les bases de données avec CPDB... et on se demande bien comment on a fait pour attendre aussi longtemps que ce superbe développement de notre ami PeekPoke (rappelons au passage que PeekPoke est l'un des deux valeureux membres fondateurs de PeekPocket) arrive !

Comme on n'apprend bien que par l'exemple, nous allons décrire un petit programme écrit en HSPascal qui utilise CPDB.

Le petit programme en question enregistre dans une base de données PDB des scores (aléatoires pour la démo) réalisés à différents niveaux (aléatoire aussi pour la démo). A chaque lancement du programme un enregistrement Niveau / Score est enregistré et le programme recalcule alors la moyenne des différents scores réalisés. C'est simple et c'est parfait pour apprendre

Passons aux choses sérieuses, le code HSPascal : Tout d'abord, nous allons inclure la bibliothèque CPDB dans notre programme et définir nos variables de travail :

Program CPDBtest;

{ $ SearchPath Units; UnitsUI; UnitsSystem }
{ $ ApplName CPDBtest,TEST }

Uses
CPDBSTD
,DataMgr,Crt,HSUtils;

const
NoError = 0;

var
Error: Err;
iHandle: Byte;
Level: ShortInt;
Score: SmallInt;
NbRecords: SmallInt;
Average: Integer;

Nous pouvons ensuite commencer notre programme, et ouvrir la bibliothèque CPDB :

begin
Randomize;
CPDB_OPENLIB;

Puis, on crée la base de données si elle n'existe pas encore :

  if CPDB_DatabaseExist('HiScoreCPDB')= CPDB_ERR_NOEXIST then 
Error:=CPDB_CreateDatabase(0,'HiScoreCPDB',s2u32('TEST'),
'NOM=STRING[10];LEVEL=SHORTINT;SCORE=INT');


Maintenant, on est sur que la base de données existe, alors on l'ouvre :

  Error:=CPDB_Open(0,'HiScoreCPDB',dmModeReadWrite,iHandle);


On a tout le loisir ensuite d'ajouter un nouvel enregistrement Niveau / Score :

  Level:=Random(10);
Score:=Random(100);
writeln('Adding LEVEL= '+i2s(Level)+' SCORE= '+i2s(Score));
Error:=CPDB_AddRecord(iHandle);
Error:=CPDB_WriteShortInt(iHandle,'LEVEL',Level);
Error:=CPDB_WriteInt(iHandle,'SCORE',Score);
Error:=CPDB_UpdateRecord(iHandle);


Maintenant, nous voulons connaître la moyenne de tous les scores déjà réalisés. Pour celà, nous commençons par compter le nombre d'enregistrements :

  Error:=CPDB_CountRecord(iHandle,NbRecords);


Puis, nous plaçons au début du fichier, et le parcourons en notant bien tous les scores réalisés successivement :


  Average:=0;
Error:=CPDB_ReadFirst(iHandle);
while Error=NoError do begin
Error:=CPDB_ReadInt(iHandle,'SCORE',Score);
Inc(Average,Score);
Error:=CPDB_ReadNext(iHandle);
end;


Nous pouvons maintenant fermer notre petite base de données, calculer et afficher la moyenne recherchée :

  Error:=CPDB_Close(iHandle);
writeln('Average Score= '+i2s(round(Average/NbRecords)));


Il nous reste juste à fermer la bibliothèque CPDB et quitter notre programme :

  CPDB_CLOSELIB;
end.


Et voilà, c'est terminé. L'écriture de ce programme n'a demandé que quelques minutes de travail très détendu puisque c'est CPDB qui s'occupe de tout ou presque !
Cette bibliothèque est carrément INDISPENSABLE à tout développeur sur Palm et il ne me reste plus qu'à tirer bien bas mon chapeau à PeekPoke.

aldweb

Le converti à CPDB

Date de création : 01/01/2003 @ 00:00
Dernière modification : 01/01/2003 @ 00:00
Catégorie :

 
react.gifRéactions à cet article

Personne n'a encore laissé de commentaire.
Soyez donc le premier !

 
Spécial !



Version mobile
de l'aldweb Site

m.aldweb.com


Ni Français, ni Anglais ?

Essayez donc l'un de ces drapeaux :
[de] [es] [it] [pt]
Météo / Spam / www

Météo Lyon


aldweb contre le SPAM


Sites web de la famille

News Amis
Sondage
Comment trouve-tu le nouvel habillage de l'aldweb Site ?
 
Superbe !
Joli
Moyen
Moche...
Résultats
^ Haut ^