IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Générer des nombres de façon ordonnée de 0000 à 9999


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 453
    Par défaut Générer des nombres de façon ordonnée de 0000 à 9999
    Bonjour.

    Je précise que j'ai déjà posé une question similaire dans le forum PHP mais il y a plusieurs mois voir 1 ans. Le problème est que lorsque je décide de générer des nombres de plusieurs longueurs 9 ou 11 par exemple, la génération est très très lente. Donc, je me demande si je pourrais me pencher sur JAVASCRIPT et essayer via AJAX ou JQUERY.

    Pour être un peu plus clair, mon objectif est de générer des nombres de "façon ordonnée" commençant de "zéro (0) à 9999" en ne dépassant pas la "longueur totale" des numéros que l'utilisateur souhaiterait générer et en ne rentrant pas non plus dans les nombres commençants par "3334" c'est à dire rester seulement au niveau du début souhaité par l'utilisateur soit "3333".

    Autrement dit, permettre à l'utilisateur de renseigner depuis les formulaires HTML (formulaires que j'ai déjà conçu et dont les <input> disposent de "numero" ET "longueur" comme "name" de l'attribut <input>):

    1 - un "DEBUT DE NUMERO" soit 1111 par exemple dans le 1er champs.

    2 - et dans le 2ème champs, la "LONGUEUR TOTALE QUE CHAQUE NOMBRE À GENERER PAR LIGNE" doit faire par exemple "8" dans le 2ème champs du même formulaire HTML.


    PAR EXEMPLE: si l'utilisateur met "3333" dans le champs "numero", ET «11» dans le champs "longueur", il devrait recevoir comme résultat après validation les numéros de "33330000000" à "33339999999" soit une longueur de 11 en fonction de la longueur de numéro renseigné depuis le formulaire HTML.
    C'est à dire que s'il mettait comme longueur au niveau du formulaire HTML, il devait avoir un retour de "333300000" à "333399999" soit là une longueur de 9 allant de zéro (0) à 99999 et en ne quittant pas non plus dans les nombres commençants par "3334" c'est à dire rester seulement au niveau du début souhaité par l'utilisateur soit "3333":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    33330000000
    33330000001
    33330000002
    33330000003
    33330000004
    33330000005
    33330000006
    .......
    ......
    ......
    33339999999
    J'espère être un peu plus explicite et espère recevoir de l'aide de votre part car ceci est d'une très grande importance pour moi.

    D'avance merci à vous.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Bonsoir,

    La lenteur du traitement sera toujours un problème, vu que c'est 33 milliards nombre qui doit être générer.., à moins que tu essaies de faire une pagination et de ne traiter que 100 nombre à la fois (par page) par exemple.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 453
    Par défaut
    Comment donc pourrais-je faire un système de pagination en générant des numéros toujours dans l'ordre de 0 à 9 basé sur un préfixe de 3333 ????

    Un exemple de code m'aidera grandement s'il vous plaît.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Je ne suis pas sûr de comprendre ce que tu veux faire...
    C'est quoi l’intérêt d'afficher autant de nombre dans une page ? Qu'est-ce que l'utilisateur est censé en faire ?

    Sinon tu peux faire ça avec du JS coté client mais je ne comprend pas pourquoi tu parles de faire des requêtes au serveur, il n'y a pas besoin du serveur pour faire ça ???

    Coté client tu n'es pas obligé d'afficher tous les nombres d'un coup, tu n'es même pas obligé de les "fabriquer" tous pour les garder en mémoire et afficher la partie demandée... Tu peux les "fabriquer" à la volé, à la demande : par exemple au début tu affiches les 70 premiers nombres dans une div ou une textearea et si l'utilisateur demande à afficher les nombres suivants eh bien tu les fabriques à ce moment là et tu les affiches puis si il veut revenir en arrière eh bien tu fais pareil...

    La demande de l'utilisateur peut se faire de différentes manières (boutons avant/après, scrollbar personnelle...) à toi de voir...

    Enfin je te dis ça d’après ce que j'ai compris mais je me demande quel est intérêt...

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Bonsoir,
    Citation Envoyé par cheboy Voir le message
    Comment donc pourrais-je faire un système de pagination en générant des numéros toujours dans l'ordre de 0 à 9 basé sur un préfixe de 3333 ????

    Un exemple de code m'aidera grandement s'il vous plaît.
    Voilà un exemple basique d'une pagination :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8" />
    <style>
    .courante{background:black;color:white;font-weight:bold}
    </style>
    </head>
    <body>
    <form method="post" id="form1">
    Valeur :<input type="number" name="nombre"  min="1" value="<?=$_POST['nombre']??3333?>"/>
    Longueur :<input type="number" name="long" min="1" value="<?=$_POST['long']??11?>"/>
    <input type="submit" />
    </form>
    <?php 
    $nombre=$_POST['nombre']??3333;
    $long=$_POST['long']??11;
    if($long<=strlen($nombre)){
    	throw new Exception('La longueur '.$long.' doit être supérieure au nombre de chiffres de '.$nombre.' !'); 
    	exit();
    }
    $nbrParPage=100;
    $page=$_POST['page']??1;
    $start=($page-1)*$nbrParPage;
    $max=$nombre.str_repeat("9",($long-strlen($nombre)));
    $min=$nombre.str_repeat("0",($long-strlen($nombre)));
    $end=($start+$nbrParPage)<=$max?$start+$nbrParPage:$max;
    $nbrPage=ceil(((int)$max-(int)$min)/$nbrParPage);
     
    echo "min :".$min.", max :".$max.", nbrPage :".$nbrPage.", page :".$page.", nombre :".$nombre.", longueur :".$long;
    if($nbrPage>=1){
    ?>
    	<div>
    		<button type="submit" name="page" form="form1" value="1" <?php echo $page==1?" disabled":"";?>>Début</button>
    		<button type="submit" name='page' form='form1' value="<?=$page-1?>" <?php echo $page==1?" disabled":"";?>>Précedent</button>
    		<?php
    		if($nbrPage>6){
    			if($page>5){
    				for($i=1;$i<=3;$i++){?>
    					<button type="submit" name="page" form="form1" value="<?=$i?>" ><?=$i?></button>
    				<?php 
    				}
    			}
    			if(	$page>=3) {echo "...";}
    			for($i=$page-1>0?$page-1:1;$i<($page+3<$nbrPage-2?$page+3:$nbrPage-2);$i++){
    			?>
    				<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
    			<?php
     
    			} 
    			if($page+3<$nbrPage-2){echo "...";}
     
    			for($i=$nbrPage-2;$i<=$nbrPage;$i++){
    			?>
    				<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
    			<?php
    			}
    		}
    		else{
    			for($i=1;$i<=$nbrPage;$i++){
    			?>
    				<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
    			<?php
     
    			}
    		}
    		?>
    		<button type="submit" name="page" form="form1" value="<?=$page+1?>" <?php echo $page==$nbrPage? " disabled":''?>>Suivant</button>
    		<button type="submit" name="page" form="form1" value="<?=$nbrPage?>" <?php echo $page==$nbrPage?' disabled':'';?>>Fin</button>
    	</div>
    	<?php
    	for($i=$start;$i<(int)$end;$i++){
    		if($min+$i<=$max){
    			echo "<p>".($min+$i)."</p>";
    		}else{
    			break;
    		}
    	}
     
    }
    ?>
    </body>
    </html>

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 453
    Par défaut
    OK. Merci beaucoup. Je vais l'essayer voir ce que ça fait.

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 453
    Par défaut
    Ça cadre mieux à ce que je recherche comparé à mon ancien code qui était très très lent dans la génération des nombres via la boucle "while".

    Mais, le problème, c'est que je ne peux pas enregistrer LE TOUT dans un fichier ".txt" et le télécharger via le "header" de mon navigateur.

    Comment donc pourrais-je télécharger L'ENSEMBLE de ces nombres générés via le "header" et ce dans un fichier ".txt" ???

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Salut,

    â mon avis, oublis l'idée d'enregistrer toutes les lignes dans un fichier txt, sinon la pagination ne sert à rien et la lenteur te posera toujours un problème.

    pourquoi ne pas enregistrer seulement une page dans le fichier.txt, et au moment de l'affichage tu passes par le système de pagination qu'on a fait ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Charger et générer des nombres dans un tableau
    Par virtuadrack dans le forum C
    Réponses: 7
    Dernier message: 30/03/2007, 16h35
  2. Réponses: 4
    Dernier message: 12/09/2006, 16h42
  3. Générer des nombres aléatoires
    Par nbeligh dans le forum C++
    Réponses: 6
    Dernier message: 05/09/2006, 16h05
  4. Algo pour générer des nombres aléatoires
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2006, 09h06
  5. Réponses: 2
    Dernier message: 16/05/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo