Gestion de compte bancaire

Soyez le premier à donner votre avis sur cette source.

Vue 27 494 fois - Téléchargée 4 093 fois

Description

une gestion de compte bancaire avec planification de mouvements périodiques. Exemple d'application d'une petite classe de base de donnée fichier facile a utiliser compatible avec kylix et Delphi7

la sources contient:
- ravagedb 1 base simple compatible avec le type record (sauf reels)
- ravageidb 1 base héritée indexée avec structure

codee avec des pointeurs.

Source / Exemple :


{*------------------------------------------------------------------------------
  ravageidb.pas v0.1 for Kylix3 and Delphi7 - 12/06/2007
 
  ravagedb database is under the terms of the GNU General Public License
  please see licence.txt
 
  depend of ravagelib.pas
  
 
  exemple:
 
  procedure TForm1.FormCreate(Sender: TObject);
  Var
    db : TRavageiDB;       // ravage database
    id,id0 : Integer;
  begin
    db := TRavageiDB.create;
    if Not FileExists('database.dat') then
      db.init('database.dat', 'driver,car,track,version,conditions,date',
                   '19,13,4,19,1,6',
                   's,s,s,s,I,i'   );
    db.load('database.dat');
 
    // to add an element
    id0 := db.add;
    db.update(id0,'driver','gaston');
    db.update(id0,'car','mac laren');
  
    // to find an element
    db.add_finditem('driver','gaston','=');
    db.add_finditem('car','mac laren*','like');
   
    id := db.findfirst();
    while id <> 0 do
    begin
      Lst3Find.Items.Add(FloatToStr(id) + ' ' + db.get(id,'driver') + ',' +
                         db.get(id,'car'));
      id := db.findnext();
    end;
  
    // to remove an element
    db.remove(id0);
    
    db.close;
  end;
 
  Note: On crash the base can contain invalid data, dont forget to check data
  Like that:
 
  for index := 1 to db.MaxEntries do
  begin
    tmp := db.get(index,'j');
    if tmp <> '' then
    begin
      d := StrToInt(db.get(index,'j'));
      m := StrToInt(db.get(index,'m'));
      y := StrToInt(db.get(index,'aa'));
     db.get
     if (d<1) or (d>31) or (m<1) or
       (m>12) or (y<2006) or (y>9999) then
     begin
       db.remove(index);
       continue;
     end;
  end;
 
  NB: The Source Code is commented in french
  @author alvaroc
  @version 0.1
-------------------------------------------------------------------------------}
unit ravageidb;

interface

uses
   SysUtils, StrUtils,
   QDialogs,QControls,   // pour application CLX
   //Dialogs,Controls,     // pour application windows
   ravagedb,ravagelib,pc1;

const
  KEY_BYTES = 3; // de 1 a 4   1:256 2:65536 3:8388608 4:4294967296
--------------------------------------------------
dans ravagedb
RESERVE_SPACE = 2048; // de 0 a 65535 espace RAM de reserve.

Conclusion :


pour application simple nécessitant une base sans installer de client.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Oniria
Messages postés
297
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
Bonjour,

Je viens de voir ta source, je trouve qu'il est vraiment très léger. De la à dire qu'elle est d'un niveau initié, je dirais plutôt débutant. On est vraiment très loin d'une application de gestion de compte bancaire minimum, je sais de quoi je parle car j'en ai diffusée une sur le site et je ne l'ai pas classé en tant qu'initie.
Sinon, je trouve que le code est bien commenté, il y a quelques astuces intéressantes (pour le multilangage d'utilisation notamment ).
Je pense qu'elle demande à être un peu plus fournit en fonction (création plus facile de compte bancaire ...).

En tout cas, bon code et bonne année 2008

Oniria
informatique02
Messages postés
8
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2008
-
b1
cs_alvaro
Messages postés
6
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011
-
La gestion de compte bancaire n'est qu'un exemple. Le code que j'ai voulut fournir ici est la classe héritée de la base de donné, mais je vais déclassé le niveau de code.

La classe de base ravageDB.pas permet de gérer des données brutes, de faire du reverse engeneering sur des bases de données fichier propriétaires (je m'en suis servit à des fin honnetes sur notre propre progiciel propriétaire développé en Turbo Pascal). ravageiDB.pas est une amélioration de cette classe pour améliorer la gestion. Paradoxalement, j'ai commencé par codé cette dernière classe. Et par besoin j'ai tout adapté pour avoir la classe de base.

L'interret majeur du code est de pouvoir extraire les données de n'importe quel fichier de record, de versions 16bit ou 32bit, très facilement indépendemment du nombre d'octets, du systeme d'exploitation par type de donnée, etc...

J'espérait une meilleure note qu'un 6 pour ce code, car je pense qu'il est bien optimisé, tout se fait par des pointeur, j'ai réécrit une fonction mathématique de base pour augmenter la capacisé dans la ravagelib.pas

function IntPower(x : Extended; y : Integer) : Extended;

J'ai passé beaucoup de temps sur ce code, de la à dire que c'est niveau débutant. Je suis pas trop d'accord, vut que le code de la classe est plutot chiadé. Mais as tu regardé le code ou as tu juste lancé l'exe et cliqué sur les boutons. Je connais la réponse c'est pourquoi je n'ai pas répondu, c'était à une époque ou j'étais vraiement débordé, et surmené.

PS: un code légé, je trouve ça bien moi.
maymonana233
Messages postés
3
Date d'inscription
mardi 22 février 2011
Statut
Membre
Dernière intervention
3 mars 2011
-
Bsr,
j'ai pas pus tester ce code malgrés que j'utilise Delphi 7

[Erreur fatale] mescomptes.dpr(6): Fichier non trouvé : 'QForms.dcu'

pourriez vous m'aider et merci
cs_alvaro
Messages postés
6
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011
-
le projet est fait en CLX, t'a pas du installer les composants

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.