Random+fichier ini

Signaler
Messages postés
13
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
7 juillet 2003
-
Messages postés
26
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
27 juin 2003
-
Bonjour à tous.

Voilà, j'ais un problème mais impossible de trouver la solution :(

J'ais 32 tedit (dans une form2) que j'enregistre dans un fichier ini.
Je voudrais les récupérer pour les mettre dans 32 autres (form1) mais qu'ils se mettent dans d'autre tedit mais dans un ordre différent dus au hasard.

J'ais cherché avec le random mais j'ais vus que cela servait pour les chiffres :( (ou je ne vois pas comment faire).

A l'aide svp

2 réponses

Messages postés
26
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
27 juin 2003

Salut,

Dans tes deux Form, assure-toi que les TEdit qui doivent contenir les mêmes valeurs portent le même nom.
Exemple :

Form1
edCompte : TEdit;
edClient    : TEdit;
etc

Form2
edCompte : TEdit;
edClient    : TEdit;
etc


Quand tu sauvegardes dans le fichier .ini (ou bien lis depuis), tu peux utiliser la propriété TEdit.Name comme clef pour affecter ou sauvegarder la valeur du TEdit en question. Fais en sorte que ton fichier .ini ait cette apparence par exemple :

[Valeur]
edCompte=Une valeur
edClient=Une autre valeur
etc
Messages postés
26
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
27 juin 2003

Désolé, j'ai répondu complètement dans les choux...Voila ce que c'est de lire trop vite :blush)

Voici un petit bout de code qui devrait mieux répondre à ton besoin

var
  i, j, k : Integer;
  tabInt  : Array[1..32] of Integer;
  tabVal  : Array[1..32] of String;
  Doublon : Boolean;
begin

  Randomize;  // Initialiser le générateur de nombre aléatoire

  for j := 1 to 32 do // Intialiser le tableau d'Index
  begin
    tabInt[j] := 0;
  end;

  j := 1;  // 1er index
  while (j <= 32) do  // Remplir le tableau avec 32 Index aléatoires
  begin               // en évitant deux fois la même valeur (doublon)
    i := Random( 33);
    if i = 0 then Inc(i); // Interdir valeur 0
    Doublon := False;
    for k := 1 to j-1 do   // Recherche des doublons
    begin
      if tabInt[k] = i then
        Doublon := True; // Doublon détecté, on recommence
    end;
    if Not Doublon Then
    begin
      tabInt[j] := i; // Ok, pas de doublon
      Inc( j);
    end;
  end;

  j := 1;
  for i := 0 to MyForm.ComponentCount-1 do  // On recherche tous les TEdit
  begin
    if MyForm.Components[i] is TEdit then
    begin
       (MyForm.Components[i] as TEdit).Text := tabVal[ TabInt[j]];
       Inc(j); // Chercher TEdit suivant
    end;
  end;
end;