Problème memo/boucle [Résolu]

dariusxi 2 Messages postés jeudi 14 avril 2011Date d'inscription 14 avril 2011 Dernière intervention - 14 avril 2011 à 22:17 - Dernière réponse : dariusxi 2 Messages postés jeudi 14 avril 2011Date d'inscription 14 avril 2011 Dernière intervention
- 14 avril 2011 à 23:58
Bonsoir,

je rencontre un problème dans le traitement de données contenues dans un mémo.
Je dois récupérer des nombres, chiffres par chiffres contenus dans le mémo 1 vers mon tableau pour ensuite les additionner
par exemple

12345 = 1+2+3+4+5
ces nombres sont composés de 5 chiffres au minimum et 10 au max
lorsque ma boucle for J (l'imbriqué) est paramétrée sur 1 to 5 pas de soucis
exemple 12345 1+2+3+4+5 15 (affiché dans memo2)

par contre lorsque ma boucle for J est paramétrée sur 6 et+ (10 max) le dernier caractère est réitéré et additionné

exemple sur boucle J 1 to 10

12345 = 1+2+3+4+5+5+5+5+5+5 ce qui renvoie une valeur erronée

avec un nombre composé de 10 chiffre aucuns soucis

En espérant que vous puissiez éclairer ma lanterne
je vous fais parvenir ci bas le code utilisé

Bonne soirée et cordialement




procedure TForm1.Button3Click(Sender: TObject);
var nombre : string ;
i,j: integer;
tableau : array of longint;

begin
Memo2.Text:='';
nombre := (memo1.Lines.Text);
SetLength(tableau,memo1.Lines.Count + 1);

for i := 0 to memo1.Lines.Count -1 do
begin
for j := 1 to 10 do
begin
if copy(memo1.Lines[I],j,1) <> '' then

nombre := copy(memo1.Lines[I],j,1);
tableau[i] := tableau[i] + strtoint(nombre);

end;

Memo2.Lines.Add(IntToStr(tableau[I]));

end;

end;

end.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
dariusxi 2 Messages postés jeudi 14 avril 2011Date d'inscription 14 avril 2011 Dernière intervention - 14 avril 2011 à 23:58
3
Merci
Bonsoir,

merci d'avoir répondu avec célérité ! Ca marche nickel
Concernant ma logique je ne connais pas très bien delphi, a vrai dire cela fait +- 6 ans que je n'ai plus touché à un compilateur donc faut le temps de reprendre ses marques ^^
Quoiqu'il en soit un grand merci

Bonne soirée

Merci dariusxi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de dariusxi
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 14 avril 2011 à 23:08
0
Merci
Salut,

Tu utilises mal Copy(). Relis bien l'Aide en ligne de Delphi.
Et tu as aussi une drôle de logique.

procedure TForm1.Button3Click(Sender: TObject);
  var     Nombre  : string ;
          i,j     : integer;
          tableau : array of longint;
  begin
  SetLength(tableau, memo1.Lines.Count);

  for i := 0 to memo1.Lines.Count-1 do begin
    Nombre := memo1.Lines[i];
    for j := 1 to Length(Nombre) do
        tableau[i] := tableau[i] + strtoint(nombre[j]);
  end;

  Memo2.Text:='';
  for i := 0 to High(tableau) do Memo2.Lines.Add(IntToStr(tableau[i]));
end;


_______________________________________
Soutenez Wikimédia France aujourd'hui : http://dons.wikimedia.fr
Commenter la réponse de Caribensila

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.