[C#][Delphi] Interrompre une fonction

Résolu
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 14 juil. 2005 à 19:47
jeffclaudio Messages postés 1 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 5 mars 2009 - 5 mars 2009 à 13:16
Bonsoir les programmeurs !!!!





J'utilise des fonctions pour envoyer du texte sur un programme externe de cette manière :






Code:, ----
System.Diagnostics.Process.Start("notepad");

System.Threading.Thread.Sleep(2000);

System.Windows.Forms.SendKeys.SendWait("vincent".ToLower());

System.Windows.Forms.SendKeys.SendWait( "{ENTER}" );







J'ai des dizaines de lignes comme celles-ci. Un moment, je vérifie la
date si ce n'est pas un dimanche(et oui, c'est mon post précédent ). Et c'est la qu'arrive la fameuse question





Serait'il possible de mettre avant l'écriture de la date, une boite de
dialogue disant, "vous allez ajouter la date XXXXX, confirmez ce choix
!!!"


Puis si OK, on continue la lecture du code, sinon, il est interrompu pour que l'on saisisse la date voulue!!!





J'espère que mon problème est assez clair. Je vous remercie de toute l'aide que vous pouvez m'apporter !!!!

20 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 20:02
if (MessageBox.Show("Voulez vous continuer", "question", MessageBoxButtons.OKCancel) == DialogResult.OK)

{

// ton code si oui

}

else

{

// ton code si non

}



Ca devrait marcher


Mx
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 20:15
Tu peux tout simplement sortir la déclaration des strings en dehors des if, de cette facon :





string date2 = String.Empty;

if(DateTime.Today.DayOfWeek == DayOfWeek.Monday)

{

date2 = (DateTime.Now.Subtract( new TimeSpan(2, 0, 0, 0)).ToString("ddMMyy"));

}

else

{

date2 = (DateTime.Now.Subtract( new TimeSpan(1, 0, 0, 0)).ToString("ddMMyy"));

}

Mx
3
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 20:12
C'est cool !!! Merci a toi.



Par contre, dans ce code, je faisait :



if(DateTime.Today.DayOfWeek == DayOfWeek.Monday)

{


string date2 =
(DateTime.Now.Subtract( new TimeSpan(2, 0, 0, 0)).ToString("ddMMyy"));

}



else

{


string date2 =
(DateTime.Now.Subtract( new TimeSpan(1, 0, 0, 0)).ToString("ddMMyy"));

}



Comment je peux faire pour utiliser date2 en dehors des boucles if et else. C'est à dire juste après ?

Merci de votre aide en ce jour férié !!!
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 20:18
Et si je désire convertir le format JJMMAA en JJ/MM/AA.

J'ai essayé ceci :



CODE :

if (MessageBox.Show("Etude d'assortiment à la date du " +
date2.ToString("dd/MM/yy"), "Carrefour", MessageBoxButtons.OKCancel) ==
DialogResult.OK)



[C# Erreur] anabel.cs(161): La méthode surchargée correspondant le
mieux à 'string.ToString(System.IFormatProvider)' possède des arguments
non valides
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 20:46
Tu peux toujours recaster ton string en DateTime a l'aide de DateTime.Parse(date2);

puis utiliser ToString("dd/MM/yy");



C'est bete, mais jvois pas plus court pour le moment, je sais pas si
y'a une formule qui s'applique a String.Format qui formaterait une date
comme tu le souhaites


Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 20:57
Non ca ne fonctionne pas non plus.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:04
Il te dit quoi ?

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:10
J'avais essayé les guillemets :






Code:, ----
date2.ToString("dd/MM/yy")







Mais merdique également :






Citation:, ----
[C#
Erreur] anabel.cs(161): La méthode surchargée correspondant le mieux à
'string.ToString(System.IFormatProvider)' possède des arguments non
valides

[C# Erreur] anabel.cs(161): Argument '1' : impossible de convertir de 'string' en 'System.IFormatProvider'







Merci
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:13
Oui mais la je parle de DateTime, pas de string.



DateTime temp = DateTime.Parse(date2);

puis dans ton code, tu utilises temp.ToString("dd/MM/yy");



Il me semble que ca devrait etre bon

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:19
J'ai une notification du débogeur me disant :

La chaine n'a pas été reconnue en tant que DateTime valide !!!!
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:21
Et quelle valeur prend date2 pendant l'execution de ton code ?

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:29
date2 a pour valeur 130705 !!!
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:32
Ah mais alors pourquoi est ce que tu fais pas tout simplement



date2 = (DateTime.Now.Subtract(new TimeSpan(2, 0, 0, 0)).ToString("dd/MM/yy"));



a la place de



date2 = (DateTime.Now.Subtract(new TimeSpan(2, 0, 0, 0)).ToString("ddMMyy"));



?

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:35
Impossible, car j'utilise date2 pour deux raisons. La premiere avec les
/, c'est pour mettre dans le messagebox et pour un aspect visuel plus
sympa.

Alors que j'utilise aussi date2 pour mon programme externe qui attend une date dans le format JJMMAA, sans les /
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:36
Bah tu crées 2 variables

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:40
c'est pas terrible quand meme. :)
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:45
Ce que je ferais a ta place, j'afficherais le DateTime normal (dont
avec les "/") dans la messagebox de confirmation, puis apres je ferais
:

date2 = date2.Trim('/');

pour ton utilisation JJMMAA

Mx
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
14 juil. 2005 à 21:47
Et l'inverse de TRIM ca n'existe pas. Ajouter des / tous les deux caractères !!!!
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juil. 2005 à 21:59
Si, tiens :



string AddChar(string str)

{


System.Text.StringBuilder sb = new System.Text.StringBuilder(str.Length
+ 3);

int i = 0;

foreach (char c in str)

{

sb.Append(c);

if ((++i)%2 == 0)


sb.Append("/");

}

return sb.ToString().Substring(0,8);

}



Mais je persiste a dire que l'utilisation de 2 variables serait bien mieux




Mx
0
jeffclaudio Messages postés 1 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 5 mars 2009
5 mars 2009 à 13:16
je voudrais un exemple concret pour le fonctionement de "DAO" (Data Access Object)appliqueŽaŽC# et Access comme base de donnés
merci
aŽ bientôt
0
Rejoignez-nous