Je vous présente rapidement mon projet :
Je souhaite faire un programme qui recherche une string dans une liste de
quelques dizaines de miliers de string.
Pour l'instant, ces strings sont stoquées à la suite (avec un caractère de
séparation) dans un fichier texte et elles sont chargé au début de mon prog
dans une listbox.
Cette listbox est ensuite parcouru avec une boucle for à chque fois qu'on le
souhaite.
Le problème c'est que cette liste peut-être parcouru assez souvent (de
l'ordre d'une fois par seconde) et le système de boucle Fopr est quand même
assez long!
L'idéal serait donc de créer une base de donnée. J'aimerais juste éviter le
système Access, car cela rajoute des fichiers très volumineux dans
l'installation et que je suis limité en taille d'installation.
Bref : Connaissez vous un moyen de faire une BD qui ne demande pas trop de
fichier d'installation supplémentaire?
Je ne sais pas si cela est faisable, mais je remercie ceux qui pourront
m'aider!
Bonjour LE TROLL, dans le message news:% tu disais :
Sinon, tu peux poser tes questions, mais tu as eu assez de réponses pour décider, non, ou as-tu autre chose ???
c'est sûr que s'il compte sur toi ...
--
Adresse invalide Merci de répondre sur le forum ... http://scraper.chez.tiscali.fr
scraper
Douns
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne en boucle avec des requettes desuus régulierement et j'ai executer mon prog sur 10000 entrées avec cette méthode. L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
Ouais, méthode, mais regardes à quoi ressemble ta ram, j'espère que tu en as beaucoup...
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne
en boucle avec des requettes desuus régulierement et j'ai executer mon prog
sur 10000 entrées avec cette méthode.
L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
Ouais, méthode, mais regardes à quoi ressemble ta ram,
j'espère que tu en as beaucoup...
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne en boucle avec des requettes desuus régulierement et j'ai executer mon prog sur 10000 entrées avec cette méthode. L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
Ouais, méthode, mais regardes à quoi ressemble ta ram, j'espère que tu en as beaucoup...
jerome crevecoeur
Salut Douns...
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de données car les algorithmes de recherche sont quand même optimisé d ans les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limite s selon le nombre d'enregistrements et la recherche dichotomique peut vite atteindre ses limites.
Cordialement
Salut Douns...
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de
données car les algorithmes de recherche sont quand même optimisé d ans
les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur
JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si
c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limite s
selon le nombre d'enregistrements et la recherche dichotomique peut vite
atteindre ses limites.
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de données car les algorithmes de recherche sont quand même optimisé d ans les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limite s selon le nombre d'enregistrements et la recherche dichotomique peut vite atteindre ses limites.
Cordialement
Douns
Merci mais j'ai ma solution (voir un peu plus bas.)
"jerome crevecoeur" a écrit :
Salut Douns...
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de données car les algorithmes de recherche sont quand même optimisé dans les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limites selon le nombre d'enregistrements et la recherche dichotomique peut vite atteindre ses limites.
Cordialement
Merci mais j'ai ma solution (voir un peu plus bas.)
"jerome crevecoeur" a écrit :
Salut Douns...
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de
données car les algorithmes de recherche sont quand même optimisé dans
les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur
JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si
c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limites
selon le nombre d'enregistrements et la recherche dichotomique peut vite
atteindre ses limites.
Merci mais j'ai ma solution (voir un peu plus bas.)
"jerome crevecoeur" a écrit :
Salut Douns...
Pour ton probleme, je pense qu'il vaut mieux utiliser une base de données car les algorithmes de recherche sont quand même optimisé dans les différents moteurs de base de données.
Accesse emble etre une solution mais il faut souvent installer le moteur JEt + le MDAC ou alors essaye de voir du coté de SqLite (jamais testé si c'est plus léger)
Un fichier simple peut être une solution mais peut atteindre ses limites selon le nombre d'enregistrements et la recherche dichotomique peut vite atteindre ses limites.
Cordialement
Nicolas
Le plus simple à mon avis est de trier la liste des strings. La recherche par dichotomie (comme l'ajout et la suppression de strings) sont en temps logarithmique donc très rapide. Bonne chance
"Douns" a écrit :
Bonjour,
Je vous présente rapidement mon projet : Je souhaite faire un programme qui recherche une string dans une liste de quelques dizaines de miliers de string.
Pour l'instant, ces strings sont stoquées à la suite (avec un caractère de séparation) dans un fichier texte et elles sont chargé au début de mon prog dans une listbox. Cette listbox est ensuite parcouru avec une boucle for à chque fois qu'on le souhaite.
Le problème c'est que cette liste peut-être parcouru assez souvent (de l'ordre d'une fois par seconde) et le système de boucle Fopr est quand même assez long!
L'idéal serait donc de créer une base de donnée. J'aimerais juste éviter le système Access, car cela rajoute des fichiers très volumineux dans l'installation et que je suis limité en taille d'installation.
Bref : Connaissez vous un moyen de faire une BD qui ne demande pas trop de fichier d'installation supplémentaire? Je ne sais pas si cela est faisable, mais je remercie ceux qui pourront m'aider!
Douns
Le plus simple à mon avis est de trier la liste des strings.
La recherche par dichotomie (comme l'ajout et la suppression de strings)
sont en temps logarithmique donc très rapide.
Bonne chance
"Douns" a écrit :
Bonjour,
Je vous présente rapidement mon projet :
Je souhaite faire un programme qui recherche une string dans une liste de
quelques dizaines de miliers de string.
Pour l'instant, ces strings sont stoquées à la suite (avec un caractère de
séparation) dans un fichier texte et elles sont chargé au début de mon prog
dans une listbox.
Cette listbox est ensuite parcouru avec une boucle for à chque fois qu'on le
souhaite.
Le problème c'est que cette liste peut-être parcouru assez souvent (de
l'ordre d'une fois par seconde) et le système de boucle Fopr est quand même
assez long!
L'idéal serait donc de créer une base de donnée. J'aimerais juste éviter le
système Access, car cela rajoute des fichiers très volumineux dans
l'installation et que je suis limité en taille d'installation.
Bref : Connaissez vous un moyen de faire une BD qui ne demande pas trop de
fichier d'installation supplémentaire?
Je ne sais pas si cela est faisable, mais je remercie ceux qui pourront
m'aider!
Le plus simple à mon avis est de trier la liste des strings. La recherche par dichotomie (comme l'ajout et la suppression de strings) sont en temps logarithmique donc très rapide. Bonne chance
"Douns" a écrit :
Bonjour,
Je vous présente rapidement mon projet : Je souhaite faire un programme qui recherche une string dans une liste de quelques dizaines de miliers de string.
Pour l'instant, ces strings sont stoquées à la suite (avec un caractère de séparation) dans un fichier texte et elles sont chargé au début de mon prog dans une listbox. Cette listbox est ensuite parcouru avec une boucle for à chque fois qu'on le souhaite.
Le problème c'est que cette liste peut-être parcouru assez souvent (de l'ordre d'une fois par seconde) et le système de boucle Fopr est quand même assez long!
L'idéal serait donc de créer une base de donnée. J'aimerais juste éviter le système Access, car cela rajoute des fichiers très volumineux dans l'installation et que je suis limité en taille d'installation.
Bref : Connaissez vous un moyen de faire une BD qui ne demande pas trop de fichier d'installation supplémentaire? Je ne sais pas si cela est faisable, mais je remercie ceux qui pourront m'aider!
Douns
[___FreGoLi___]
le performant "Loïc" a sussuré après avoir transpiré
[___FreGoLi___] a émis l'idée suivante : > sur une portion du champ et non sur le champ
Autant pour moi Fre.
Par conter j'ai fait un petit test en foxpro (j'insiste avec ça :) mais je ne vous en reparle plus après c'est promis ).
J'ai une table tbtest composée d'un champ champ1 de type caractères sur 50 positions. J'ai rempli 1 000 000 d'enregistrements avec des chaines de caractères aléatoires. J'ai effectué la requête suivante:
SELECT * from tbtest WHERE tbtest.champ1 like "%KZ"
J'obtiens 750 enregistrements en 0.55 secondes avec un P4 2 gigas et 256 megas de ram.
Je doute qu'une implémentation vb maison faite maison marche mieux...
-- Loïc
j'étais en réunion d'où mon retard de réponse. Mais je la fais quand même.
Ben sans essai je pense que une série de instr dans une chaine de 2 MO irait pas beaucoup plus vite (mais un peu quand même ;-). Donc solution correcte adéquate. reste uniquement le soucis de dll ou autre à intégrer dans son package.
en tout cas test interressant effectué. Merci
le performant "Loïc" a sussuré après avoir transpiré
[___FreGoLi___] a émis l'idée suivante :
> sur une portion du champ et non sur le champ
Autant pour moi Fre.
Par conter j'ai fait un petit test en foxpro (j'insiste avec ça :) mais
je ne vous en reparle plus après c'est promis ).
J'ai une table tbtest composée d'un champ champ1 de type caractères sur
50 positions.
J'ai rempli 1 000 000 d'enregistrements avec des chaines de caractères
aléatoires.
J'ai effectué la requête suivante:
SELECT * from tbtest WHERE tbtest.champ1 like "%KZ"
J'obtiens 750 enregistrements en 0.55 secondes avec un P4 2 gigas et
256 megas de ram.
Je doute qu'une implémentation vb maison faite maison marche mieux...
--
Loïc
j'étais en réunion d'où mon retard de réponse. Mais je la fais quand même.
Ben sans essai je pense que une série de instr dans une chaine de 2 MO irait
pas beaucoup plus vite (mais un peu quand même ;-).
Donc solution correcte adéquate.
reste uniquement le soucis de dll ou autre à intégrer dans son package.
le performant "Loïc" a sussuré après avoir transpiré
[___FreGoLi___] a émis l'idée suivante : > sur une portion du champ et non sur le champ
Autant pour moi Fre.
Par conter j'ai fait un petit test en foxpro (j'insiste avec ça :) mais je ne vous en reparle plus après c'est promis ).
J'ai une table tbtest composée d'un champ champ1 de type caractères sur 50 positions. J'ai rempli 1 000 000 d'enregistrements avec des chaines de caractères aléatoires. J'ai effectué la requête suivante:
SELECT * from tbtest WHERE tbtest.champ1 like "%KZ"
J'obtiens 750 enregistrements en 0.55 secondes avec un P4 2 gigas et 256 megas de ram.
Je doute qu'une implémentation vb maison faite maison marche mieux...
-- Loïc
j'étais en réunion d'où mon retard de réponse. Mais je la fais quand même.
Ben sans essai je pense que une série de instr dans une chaine de 2 MO irait pas beaucoup plus vite (mais un peu quand même ;-). Donc solution correcte adéquate. reste uniquement le soucis de dll ou autre à intégrer dans son package.
en tout cas test interressant effectué. Merci
[___FreGoLi___]
instr sur des chaîne très longue est très performant en général. Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale la fonction split qui te découpe automatiquement une chaine en fonction d'un délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e) dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de la famille qu'on protège car on l'aime bien dans le fond. Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne en boucle avec des requettes desuus régulierement et j'ai executer mon prog sur 10000 entrées avec cette méthode. L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
> Ouais, méthode, mais regardes à quoi ressemble ta ram, > j'espère que tu en as beaucoup... > > >
instr sur des chaîne très longue est très performant en général.
Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale
la fonction split qui te découpe automatiquement une chaine en fonction d'un
délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est
terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est
gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e)
dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de
la famille qu'on protège car on l'aime bien dans le fond.
Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne
en boucle avec des requettes desuus régulierement et j'ai executer mon prog
sur 10000 entrées avec cette méthode.
L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
> Ouais, méthode, mais regardes à quoi ressemble ta ram,
> j'espère que tu en as beaucoup...
>
>
>
instr sur des chaîne très longue est très performant en général. Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale la fonction split qui te découpe automatiquement une chaine en fonction d'un délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e) dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de la famille qu'on protège car on l'aime bien dans le fond. Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne en boucle avec des requettes desuus régulierement et j'ai executer mon prog sur 10000 entrées avec cette méthode. L'ordinateur a très bien supporté et la réponse est instantanée.
"LE TROLL" a écrit :
> Ouais, méthode, mais regardes à quoi ressemble ta ram, > j'espère que tu en as beaucoup... > > >
Douns
Je suis en VB5 j'oublie donc le split ;)
"[___FreGoLi___]" a écrit :
instr sur des chaîne très longue est très performant en général. Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale la fonction split qui te découpe automatiquement une chaine en fonction d'un délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e) dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de la famille qu'on protège car on l'aime bien dans le fond. Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
> J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne > en boucle avec des requettes desuus régulierement et j'ai executer mon prog > sur 10000 entrées avec cette méthode. > L'ordinateur a très bien supporté et la réponse est instantanée. > > "LE TROLL" a écrit : > > > Ouais, méthode, mais regardes à quoi ressemble ta ram, > > j'espère que tu en as beaucoup... > > > > > >
Je suis en VB5 j'oublie donc le split ;)
"[___FreGoLi___]" a écrit :
instr sur des chaîne très longue est très performant en général.
Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale
la fonction split qui te découpe automatiquement une chaine en fonction d'un
délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est
terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est
gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e)
dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de
la famille qu'on protège car on l'aime bien dans le fond.
Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
> J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne
> en boucle avec des requettes desuus régulierement et j'ai executer mon prog
> sur 10000 entrées avec cette méthode.
> L'ordinateur a très bien supporté et la réponse est instantanée.
>
> "LE TROLL" a écrit :
>
> > Ouais, méthode, mais regardes à quoi ressemble ta ram,
> > j'espère que tu en as beaucoup...
> >
> >
> >
instr sur des chaîne très longue est très performant en général. Dans le même ordre d'idée, et si tu ne la connais pas encore,je te signale la fonction split qui te découpe automatiquement une chaine en fonction d'un délimiteur et te renvoies ça dans un tableau de chaine. Couplé avec, c'est terrible...
Enfin, laisse tomber les remarques du troll (ours). Il est trodroll ..
Manifestement il ne sait pas ce qu'est un fichier de swap et comment est gérée la mémoire d'une ordinateur. Normal, il fontionne avec un(e) bit(e) dans le cerveau ....
Il est très atendrissant quand on l'écoute, comme l'enfant un peu attardé de la famille qu'on protège car on l'aime bien dans le fond. Voilà ce qu'il est, l'idiot du village des news sur VB.
Allons arrête de faire le méchant, troll, on t'aime quand même.
"Douns" a écrit :
> J'ai 128 Mo sur l'ordinateur où je suis. Il y a un serveur apache qui tourne > en boucle avec des requettes desuus régulierement et j'ai executer mon prog > sur 10000 entrées avec cette méthode. > L'ordinateur a très bien supporté et la réponse est instantanée. > > "LE TROLL" a écrit : > > > Ouais, méthode, mais regardes à quoi ressemble ta ram, > > j'espère que tu en as beaucoup... > > > > > >
Driss HANIB
"Carrère Loïc" a écrit dans le message de news:
Je suis une fois de plus affigé de te lire. Quand tu né réponds pas à côté du racontes n'importe quoi par l'affirmative...
Salut Loïc,
Allez ne te faches pas; il n'en vaut vraiment pas la peine. Il est encore à l'âge des legos et il veut se comparer à des pros comme tu es et comme je ne suis pas.. Ses bases en fichier texte lui suffisent pour ses 3 courses à faire et son astrologie à 15 ¤
ne t'abaisse pas à te comparer à lui. 3 paroles sur 4 dites par lui sont des conneries qu'un enfant de 13 ans n'oserait même plus dire par peur de la honte. Il est le digne exemple du fait que lke ridiculene tue pas.. Meme un débutant est plus ouvert à la programmation .. Comme disait COLUCHE, qui s'amusait à imiter des beaufs de son espèce: 'L'intelligence est la chose la mieux répartie au monde car quelque soit la quantité qu'on aie on pense toujours qu'on en a assez vu que c'est avec cela qu'on pense'
enfin à un détail près : LE TROLL ne pense pas.
Et enfin une dernière citation (du même COLUCHE) : "il a des idées sur tout mais il a surtout des idées"
C'est le parasite des NG
Driss
"Carrère Loïc" <lccontact@hotmail.com> a écrit dans le message de news:
mn.231a7d58abe29403.20273@hotmail.com...
Je suis une fois de plus affigé de te lire. Quand tu né réponds pas à côté
du racontes n'importe quoi par l'affirmative...
Salut Loïc,
Allez ne te faches pas; il n'en vaut vraiment pas la peine.
Il est encore à l'âge des legos et il veut se comparer à des pros comme tu
es et comme je ne suis pas..
Ses bases en fichier texte lui suffisent pour ses 3 courses à faire et son
astrologie à 15 ¤
ne t'abaisse pas à te comparer à lui.
3 paroles sur 4 dites par lui sont des conneries qu'un enfant de 13 ans
n'oserait même plus dire par peur de la honte.
Il est le digne exemple du fait que lke ridiculene tue pas..
Meme un débutant est plus ouvert à la programmation ..
Comme disait COLUCHE, qui s'amusait à imiter des beaufs de son espèce:
'L'intelligence est la chose la mieux répartie au monde car quelque soit la
quantité qu'on aie on pense toujours qu'on en a assez vu que c'est avec
cela qu'on pense'
enfin à un détail près : LE TROLL ne pense pas.
Et enfin une dernière citation (du même COLUCHE) : "il a des idées sur tout
mais il a surtout des idées"
Je suis une fois de plus affigé de te lire. Quand tu né réponds pas à côté du racontes n'importe quoi par l'affirmative...
Salut Loïc,
Allez ne te faches pas; il n'en vaut vraiment pas la peine. Il est encore à l'âge des legos et il veut se comparer à des pros comme tu es et comme je ne suis pas.. Ses bases en fichier texte lui suffisent pour ses 3 courses à faire et son astrologie à 15 ¤
ne t'abaisse pas à te comparer à lui. 3 paroles sur 4 dites par lui sont des conneries qu'un enfant de 13 ans n'oserait même plus dire par peur de la honte. Il est le digne exemple du fait que lke ridiculene tue pas.. Meme un débutant est plus ouvert à la programmation .. Comme disait COLUCHE, qui s'amusait à imiter des beaufs de son espèce: 'L'intelligence est la chose la mieux répartie au monde car quelque soit la quantité qu'on aie on pense toujours qu'on en a assez vu que c'est avec cela qu'on pense'
enfin à un détail près : LE TROLL ne pense pas.
Et enfin une dernière citation (du même COLUCHE) : "il a des idées sur tout mais il a surtout des idées"