format pour manipulation et stockage de données

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
cowpowah
Messages : 41
Inscription : mer. 02/juin/2010 12:41

format pour manipulation et stockage de données

Message par cowpowah »

Bonjour,

Je viens de decouvrir PureBasic (et accessoirement la programation :mrgreen: ), je voudrais faire un petit programme mais qui doit jongler avec beaucoups de données (plusieurs miliers, voir dizaines de miliers) de type coordonnée datée (x, y, date, plus peut-être 1 ou 2 valeurs).

Pouvez-vous m'aider a choisir la meilleure façon de les stocker? (BDD, fichier txt, preference, ou autre...?) Je cherche a avoir un fichier de données de taille raisonnable, et pouvoir accéder à une donnée precise (ou groupe de données) le plus rapidement possible.

Je suppose que la façon de traiter les données depend un peu de la façon dont elles sont stockées. A priori, l'ideal c'est la base de données, mais avec par exemple 20 000 entrées, est-ce que ça reste acceptable niveau rapidité d'utilisation, utilisation des ressources systeme et taille de la BDD?

Merci :)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: format pour manipulation et stockage de données

Message par Geo Trouvpatou »

Salut.

Dans la doc, regarde la lib Map et LinkedList.
Par contre pour la question dans quoi stocker tout ça, je ne fait pas partie des gens qui ont déjà dû stocker énormément de données, alors peut-être que d'autres pourront mieux te répondre.

Bye.
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: format pour manipulation et stockage de données

Message par gnozal »

Pour la base de données, jette un coup d'oeil du côté de SQLite, qui est supporté par la librairie Database de Purebasic.
cowpowah
Messages : 41
Inscription : mer. 02/juin/2010 12:41

Re: format pour manipulation et stockage de données

Message par cowpowah »

En regardant Map, je suis tombé sur Structure. A priori c'est exactement ce que je cherchais.

c'est possible de charger un fichier ASCII formaté dans une structure et de s'en servir comme une BDD virtuelle?
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: format pour manipulation et stockage de données

Message par G-Rom »

oui , tu peut.
regarde du coté de ReadFile()
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Re: format pour manipulation et stockage de données

Message par Cls »

Salut !

Il n'y aura jamais mieux que les bases de données (comme leurs noms l'indiquent, elles sont faites pour ça...). Si tu débutes, prend dès à présent l'habitude de les utiliser.

Maintenant pour des besoins ponctuels simples (sans relation entre les données), tu peux utiliser des fichiers plats.

Bon courage.
cowpowah
Messages : 41
Inscription : mer. 02/juin/2010 12:41

Re: format pour manipulation et stockage de données

Message par cowpowah »

J'ai essayé de jouer avec les bases de données mais la je bloque:

Code : Tout sélectionner

xdecs$=StrD(xdec)
ydecs$=StrD(ydec)
DatabaseUpdate(#BDD, "INSERT INTO table (x, y) VALUES ('"+xdecs+"', '"+ydecs+"')")
il me dit: "peut pas mixer des Strings avec des valeurs numeriques" 8O

edit: ça fonctionne comme ça

Code : Tout sélectionner

DatabaseUpdate(#BDD, "INSERT INTO table (x, y) VALUES ('"+xdecs$+"', '"+ydecs$+"')")
:|
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: format pour manipulation et stockage de données

Message par venom »

salut,

si tu souhaite mixer les strings et les valeurs numérique tu peut par exemple renvoyer la valeur numérique en string avec la fonction Str()
si j'ai bien compris :) donc sa reviens a ceci :

Code : Tout sélectionner

DatabaseUpdate(#BDD, "INSERT INTO table (x, y) VALUES ('"+xdecs$+"', '"+ydecs$+"')")






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
cowpowah
Messages : 41
Inscription : mer. 02/juin/2010 12:41

Re: format pour manipulation et stockage de données

Message par cowpowah »

Hello,

Encore un petit soucis:

Code : Tout sélectionner

purgebdd.s=Str(Date()-3600)
DatabaseUpdate(#BDD, "DELETE FROM table WHERE date < '"+purgebdd$+"'")
(Je stocke la date en timestamp dans la base de donnée, la colonne "date" est du type UNSIGNEDINT, et ce code arrive juste après un FinishDatabaseQuery(#BDD))

Et il m'efface toute la base! :?

Je vois pas ce qui cloche... :|
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: format pour manipulation et stockage de données

Message par Geo Trouvpatou »

Salut.

Tapes cela :

Code : Tout sélectionner

purgebdd.s = Str(Date()-3600)

Debug "purgebdd$ vaut : "+ purgebdd$
Debug "purgebdd vaut : "+ purgebdd
Dans la doc dans la rubrique : Variables, Types et Opérateurs -> Section : Notation des variables chaîne de caractères il est écrit : De cette façon vous pouvez utiliser 'a$' et 'a.s' , ce sont deux variables différentes.

Pour ma part, je préfère utiliser : "purgebdd$" parce que dans 6 mois si tu ré-ouvres ton code de 3000 lignes et qu'en plein milieu tu vois "purgebdd$", tu sais que tu as affaire à une variable qui contient une chaine, alors que si tu mets "purgebdd.s" par la suite tu es obligé de mettre "purgebdd" donc en plein milieu de ton programme, tu ne sais plus forcement si la variable contient un entier ou une chaine et tu es obligé de rechercher à droite à gauche ce que contient "purgebdd"
Maintenant c'est un choix personnel.

Au passage, prend l'habitude de mettre en haut de ton code "EnableExplicit"
Parce qu'en mettant ce code :

Code : Tout sélectionner

EnableExplicit

purgebdd.s = Str(Date()-3600)

Debug "purgebdd$ vaut : "+ purgebdd$
Tu te serais plus vite fait aperçu de ton erreur.

Bye.
cowpowah
Messages : 41
Inscription : mer. 02/juin/2010 12:41

Re: format pour manipulation et stockage de données

Message par cowpowah »

8O
pourtant je l'ai potassé la page des variables... :oops:

bein du coup ça explique aussi ma question précédente! :idea: :mrgreen:

Merci beaucoup Geo!! :D je prend bonne note aussi de ton conseil sur les explicit :wink:
Répondre