amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010
-
26 juin 2007 à 14:18
Utilisateur anonyme -
27 juin 2007 à 11:46
salut tout le monde;
j'ai un pb au niveau de mon case var of losque mon var arrive à un chiffre de deux position 10 par exemplej'avais declaré var comme integer tout marchait bien de var 0 à var 9, une fois que mon var vaut 10,11,.... le pb se pose, j'ai pensé à refaire la même chose en declarent var de type string et ça va devenir case var of
'0':
.
.
'11':
mais malheureusement ça n'a pas marché
comment je peux regler mon problème????
je vous remercie d'avance.
amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010 26 juin 2007 à 15:47
salut;
voilà une partie de mon code:
for i:=vldebres+2 to vlfinres-1
do
begin
append;
fieldbyname('numrc').asstring:=edit1.text;
fieldbyname('exec').asstring:=edit2.text;
for j:=vcdebres to vcfinres
do
begin
case j-vcdebres of
0: fieldbyname('codec').asstring:=(ExCel.GetCell(i,j));
1: fieldbyname('Actif').asstring:=(ExCel.GetCell(i,j));
.
.
.
.
.
10:fieldbyname('mdebit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
11: fieldbyname('mcredit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
end; //case
end; //fin for j
post;
end; //fin for i
amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010 26 juin 2007 à 16:23
salut
C'est déja fait j'ai enlever tout les showmessage au moment ou j'alais mettre le code ici et mes valeurs sont bonnes elles varient de 0 à 11.
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010 26 juin 2007 à 16:38
salut;
Au faite le programme ne se compile même pas correctement , il s'arrete au niveau ou mon var devient un chiffre de deux positions ,j'ai même essayé de mettre sous forme de commentaire les instruction à partir de 10...... et là mon programme se deroule très bien.
merci
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 26 juin 2007 à 20:19
Salut,
Je constate qu'à partir du 10ème "case of" tu changes de propriété de champ (AsFloat) :
le problème ne viendrait-il pas plutôt de la function "modif_chiffre" ?
amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010 26 juin 2007 à 21:49
salut,
pour dom:
je l'ai essayé de var =0 jusqu'à var =9 et ça se compile et s'excute très bien avec le bon résultat voulu biensur en mettant les instructions à partir de var=10 comme commentaire donc ils ne seront pas compilées.
pour japee:
mais non le pb ne se situe pas dans mon AsFloat parceque si je fais le Asfloat lorsque mon var vaut de 0 à 9 mon programme fonctionne normalement.
voilà je vous remercie.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 26 juin 2007 à 22:17
Un truc me chiffone :
for j:=vcdebres to vcfinres
do
begin
case j-vcdebres of
Si vcdebres est affecté à J à chaque tour de boucle, alors j-vcdebres vaut donc toujours zéro, non ?
Je suis tout à fait d'accord avec dominique.stock : si tu as pu exécuter ton programme, c'est qu'il a été compilé !!! Il faudrait employer les bons termes pour décrire ton problème faute de quoi ça va encore partir en vrille
Es-tu réellement sur que ta fonction modif_chiffre soit en mesure de renvoyer un résultat de type Float lorsque J atteint la valeur 10 ? Que contient la cellule dans ce cas ?
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.afipa.net/
amelrc
Messages postés41Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention29 août 2010 27 juin 2007 à 09:38
salut;
si je vais ça :
for i:=vldebres+2 to vlfinres-1
do
begin
append;
fieldbyname('numrc').asstring:=edit1.text;
fieldbyname('exec').asstring:=edit2.text;
for j:=vcdebres to vcfinres
do
begin
case j-vcdebres of
0: fieldbyname('codec').asstring:=(ExCel.GetCell(i,j));
1: fieldbyname('Actif').asstring:=(ExCel.GetCell(i,j));
.
.
.
.
.
// 10:fieldbyname('mdebit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
//11: fieldbyname('mcredit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
end; //case
end; //fin for j
post;
end; //fin for i
les deux instructions ou mon var vaut 10 et 11 sont mise en commentaire .
Dans ce cas là mon programme tourne bien.
j'ai même essayer
0:fieldbyname('mdebit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
1:fieldbyname('mcredit').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
2:fieldbyname('montant').asfloat:=modif_chiffre(ExCel.GetCell(i,j));
dans ce cas là aussi mon programme tourne bien.
Donc je n'arrive pas à situer le pb
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 27 juin 2007 à 10:47
Bonjour
Le problème ne viendrait pas du ExCel.GetCell(i,j)ou plus exactement des valeurs qui se situe dans ta grille ?
Vérifie les valeurs de i et j, puis les valeurs qui se trouvent dans les cellules aux colonnes 10 et 11. Rien de particulier ?
Quel est la définition de ta fonction modif_chiffre. Utilises-tu un variant, un string comme paramètre ?
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Ca fait 12 messages ou les membres tournent en rond pour t'aider.
Tu sais pourquoi ? Car tu nous donnes rien du tout comme information .
Ton ptit bout de code ne sert à rien pour faire avance le schmilblik. Donnes le code dans son entier ou à la rigueur passe un lien ou on peut télécharger ton source : sinon on est pas sortie de l'auberge (Puis comme on l'a déjà dit : M'dame Irma, elle est en vacances du 1 juin au 1 septembre ).
Comme l'a dit (indirectement) WhiteHippo : ton problème ne vient pas du "case ... of" à proprement parlé. Soit j-vcdebres=10 et le bloc d'instruction est executé, soit il ne l'est pas et rien ne se passe (ou a la rigueur un autre cas). Il n'y a aucune autre possibilité. Donc soit il y a une sucette dans l'une des boucles (et c'est fort probable) For ... Do suite à l'utilisation d'un mauvais type, soit effectivement la procedure que t'a souligné Whitte Hippo fieldbyname('mdebit').asfloat:=modif_chiffre(ExCel.GetCell(i,j)) , merdouille. Si ca merdouille soit les valeurs de i et j ne sont pas correctes, soit ta procédure modif_chiffre est bringbalante.
Dans tous les cas si tu veux de l'aide va falloir filer tout le code .