Gdb system

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 126 fois - Téléchargée 29 fois

Contenu du snippet

GDB signifie G DataBase. C'est un mélange entre les fichier ini et MySQL. L'avantage est qu'il est possible de mettre plusieurs valeurs pour un seul Item. Ca fonctionne en DataBase > Table > Item > Values.

Source / Exemple :


alias gdb_get {
  unset %str | var %i 1 | while (%i <= $lines($1)) {
    if ($left($read($1,%i),1) == $chr(60)) {
      set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
      if (%table == $2) {
        var %o $calc(%i + 1) | while (%o <= $lines($1)) {
          if ($left($read($1,%o),1) != $chr(60)) {
            if ($gettok($read($1,%o),1,61) == $3) {
              set %str $gettok($gettok($read($1,%o),2,61),$4,28)
              break
          } }
          else { break }
    inc %o } } }
  inc %i }
  return %str
}
alias gdb_put {
  unset %antvalue | unset %table
  if (!$gdb_table_exists($1,$2)) { write $1 < $+ $2 $+ > | write $1 $chr(32) }
  if ($gdb_get($1,$2,$3,1)) {
    var %i 1 | while (%i <= $lines($1)) {
      if ($left($read($1,%i),1) == $chr(60)) {
        set %table $right($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1))) - 1))
        if ($2 == %table) {
          var %o = $calc(%i + 1) | while (%o <= $lines($1)) {
            if ($left($read($1,%o),1) != $chr(60)) {
              if ($gettok($read($1,%o),1,61) == $3) {
                set %antvalue $gdb_get($1,$2,$3,1-) | write -dl $+ %o $1
            write -il $+ %o $1 $3 $+ = $+ %antvalue $+ $chr(28) $+ $4- | break } }
      inc %o } } }
      inc %i
  } }
  else {
    var %i 1 | while (%i <= $lines($1)) {
      if ($left($read($1,%i),1) == $chr(60)) {
        set %table $right($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1))) - 1))
        if ($2 == %table) {
          write -il $+ $calc(%i + 1) $1 $3 $+ = $+ $4- | break
      } }
      inc %i
} } }
alias gdb_table_exists {
  set %tableexists $false | var %i 1 | while (%i <= $lines($1)) {
    if ($left($read($1,%i),1) == $chr(60)) {
      set %table $right($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),>,1) - 1))) - 1))
    if ($2 == %table) { set %tableexists $true | break } }
  inc %i }
  return %tableexists
}
alias gdb_create_table {
  if (!$gdb_table_exists($1,$2)) { write $1 < $+ $2 $+ > | write $1 $chr(32) }
}
alias gdb_delete_item {
  var %i 1 | while (%i <= $lines($1)) {
    if ($left($read($1,%i),1) == $chr(60)) {
      set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
      if (%table == $2) {
        var %o = $calc(%i + 1) | while (%o <= $lines($1)) {
          if ($left($read($1,%o),1) != $chr(60)) { if ($gettok($read($1,%o),1,61) == $3) {
          write -dl $+ %o $1 | break } }
          else { break }
          inc %o
    } } }
    inc %i
} }
alias gdb_delete_value {
  var %i 1 | while (%i <= $lines($1)) {
    set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
    if (%table  == $2) {
      var %o = $calc(%i + 1) | while (%o <= $lines($1)) {
        if ($left($read($1,%o),1) != $chr(60)) { if ($gettok($read($1,%o),1,61) == $3) {
            write -l $+ %o $1 $3 $+ = $+ $deltok($gdb_get($1,$2,$3,1-),$4,28)
        break } }
        else { break }
        inc %o
    } }
    inc %i
} }
alias gdb_replace_value {
  var %i 1 | while (%i <= $lines($1)) {
    set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
    if (%table  == $2) {
      var %o = $calc(%i + 1) | while (%o <= $lines($1)) {
        if ($left($read($1,%o),1) != $chr(60)) { if ($gettok($read($1,%o),1,61) == $3) {
            write -l $+ %o $1 $3 $+ = $+ $puttok($gdb_get($1,$2,$3,1-),$5-,$4,28)
        break } }
        else { break }
        inc %o
    } }
    inc %i
} }
alias gdb_delete_table {
  unset %db | var %i 1 | while (%i <= $lines($1)) {
    set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
    if (%table  == $2) {
      set %db %i | var %o = $calc(%i + 1) | while (%o <= $lines($1)) {
        if ($left($read($1,%o),1) != $chr(60)) { write -dl $+ %o $1 | dec %o }
        else { break }
        inc %o
    } }
  inc %i }
if (%db) { write -dl $+ %db $1 } }

alias gdb_tables {
  ;$gdb_tables(fichier.gdb)
  unset %table_list | var %i 1 | var %tables 0 | while (%i <= $lines($1)) {
    if ($left($read($1,%i),1) == $chr(60)) {
      inc %tables
      set %table_list $addtok(%table_list,$right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1)),32)
    }
    inc %i
  }
  return %tables %table_list
}

alias gdb_items {
  ;$gdb_items(fichier.gdb,table)
  unset %items | unset %item_list | var %i 1 | while (%i <= $lines($1)) {
    if ($left($read($1,%i),1) == $chr(60)) {
      set %table $right($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1)),$calc($len($left($read($1,%i),$calc($pos($read($1,%i),$chr(62),1) - 1))) - 1))
      if (%table == $2) {
        var %o $calc(%i + 1) | var %items 0 | unset %item_list | while (%o <= $lines($1)) { if ($left($read($1,%o),1)) {
            if ($left($read($1,%o),1) != $chr(60)) { inc %items | set %item_list $addtok(%item_list,$gettok($read($1,%o),1,61),32) }
          else { break } }
    inc %o } } }
  inc %i }
return %items %item_list }

Conclusion :


gdb_put fichier.gdb Table Item NouvelleValeur
Ajoute une valeur à l'item 'Item'.

gdb_create_table fichier.gdb NouvelleTable
Crée la table 'NouvelleTable' dans la base fichier.gdb

gdb_delete_value fichier.gdb Table Item Numero
Supprime la valeur numéro 'Numero' de l'item 'Item'

gdb_delete_item fichier.gdb Table Item
Supprime l'item 'Item' de la table 'Table'

gdb_replace_value fichier.gdb Table Item Numero NouvelleValeur
Va remplacer la valeur numéro 'Numero' de l'item 'Item' par 'NouvelleValeur'

gdb_delete_table fichier.gdb Table
Supprime la table 'Table' de la base de données fichier.gdb

$gdb_get(fichier.gdb,Table,Item,Numero)
Donne la valeur numero 'Numero' de l'item 'Item'.
Précisez 0 comme 'Numero' pour connaître le nombre de valeurs que possède 'Item'.

$gdb_table_exists(fichier.gdb,Table)
Retourne $true si 'Table' existe, sinon $false.

$gdb_tables(fichier.gdb)
Retourne un résultat en 2 parties du type : 3 Table1 Table2 Table3
3 est donc le nombre de tables que possède fichier.gdb. Ce nombre est suivi des nom de tables séparés par un $chr(32).
Donc si vous voulez le nombre de tables seulement, prenez $gettok($gdb_tables(fichier.gdb),1,32) etc...

$gdb_items(fichier.gdb,Table)
Elle fonctionne comme $gdb_tables, à savoir que le résultat est constitué de 2 parties. Le nombre d'items dans la table, et l'énumération.

C'est plus joli et mieux expliqué sur une page html, allez plutôt ici pour les commandes et fonctions http://gfaction.free.fr/GDB.htm

Je savais pas quoi faire alors j'ai fait ça jeudi soir.
Now ça va beaucoup me servir, et j'espère pour vous aussi ;)

Allez, enjoy !

×××G-FACTION×××

A voir également

Ajouter un commentaire

Commentaires

cs_freenaute
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009
-
g-simplement omis de te remercier pour d'autre G-codes que G-DL...alors G-envie de réparer et te saluant dpuis la G-Corse...!
G-rien oublié G-spère...allez, en période de vacances on peut sourire en usant un peu de cette réponse...
Bye l'Ami.
signé un vieux de 58 ans...! lol.
cs_Mystou
Messages postés
4
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
5 décembre 2004
-
ça me fait G-Chier tout des G-truc quand est-ce que t'arretera avec la G-Maladie j'te met G10/10 mais omme ça existe pas ;)
fatih3000
Messages postés
1
Date d'inscription
vendredi 5 novembre 2004
Statut
Membre
Dernière intervention
5 novembre 2004
-
?
GFACTION
Messages postés
199
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
7 avril 2005
-
La G-CONVENTION d'écriture des G-CHOSES, G-SKETUVEUX etc... c'est déjà d'écrire ce mot tout en majuscules, précédé d'un "G-"...

Bon, blagues mises à part, je n'ai pas envie d'éveiller votre curiosité mais bon... en gros je suis le seul à connaître la signification de la lettre sacrée G. :p

Au moins Kerrigan, ça a l'avantage de tout de suite savoir qui a fait ça :)

Kerri++
Kerrigan
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005
-
Mais dis moi Gfaction ... G une question qui me turlupine ...
tu es vraiment obliger de mettre un "G" devant tous des addon ?! moi ça me tu ...
Des fois je me demande si tu n'as pas une G fourchette ou des G vetements :D
Libre a toi de me repondre c juste que voir des G partout a force ça me fais peur. lol
"l'invasion des G mouhahahahahahaha"

C'etait G Kerrigan pour G-Tv :))))))

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.