Random+fichier ini

Enkorr Messages postés 13 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 7 juillet 2003 - 16 juin 2003 à 20:02
Jean44 Messages postés 26 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 27 juin 2003 - 18 juin 2003 à 18:26
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

Jean44 Messages postés 26 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 27 juin 2003
17 juin 2003 à 12:03
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
0
Jean44 Messages postés 26 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 27 juin 2003
18 juin 2003 à 18:26
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;
0
Rejoignez-nous