Auteur |
Message |
Strato
Résident du forum
Sexe:
Messages: 250
Localisation: Paris
|
Posté le:
Mar 24 Oct 2006 - 10:26 |
|
Salut à tous,
Mon entreprise d'accueil m'a chargée de réaliser un petit programme en C#.
Dans ce but j'ai besoin d'apprendre à faire deux/trois trucs en C# que j'ignore pour l'instant :
<s>- Comment récupérer puis manipuler la date courante.</s> REUSSI
<s>- Comment copier (PAS déplacer) un fichier d'un répertoire à un autre.</s> REUSSI
- Comment lancer un script en PEARL et attendre qu'il ait fini de s'exécuter (potentiellement en mettant mon programme C# en pause pendant une durée raisonnable).
Tout ça en mode console.
Evidemment je vais me documenter sur Internet mais si vous avez des débuts de pistes à me fournir, des noms de commandes notamment, je vous en serai reconnaissant.
P.S : Pourquoi j'arrive pas à barrer mon texte? Pourtant les balises HTML devraient marcher non? |
Dernière édition par Strato le Mar 24 Oct 2006 - 13:14; édité 2 fois |
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
zowix
Accro à Web-IG
Sexe:
Messages: 176
Localisation: Grenoble - entre une chaise et un clavier
|
Posté le:
Mar 24 Oct 2006 - 11:07 |
|
salut
pour copier:
un stream reader, contenu fichier dans variable, variable dans fichier.
y'a peut-être plus simple.
sinon zieute csharpfr.com |
_________________
acer aspire 5101 awlmi x56 monté à 1GO... ça tourne!
membre à l'essai du staff www.grenoble2night.com (zowix)
jeudi: bars / vendredi: liquid / samedi: scotch |
|
|
|
Strato
Résident du forum
Sexe:
Messages: 250
Localisation: Paris
|
Posté le:
Mar 24 Oct 2006 - 11:49 |
|
Merci zowix.
Est-ce que quelqu'un saurait me dire comment transformer ma variable (de type string) 2006 en 06 ? (autrement dit comment virer automatiquement deux caractères sur la gauche)
Edit : C'est bon j'ai trouvé...
Code: |
AA = AA.Substring(2,2); |
Edit 2 : Pour déplacer un fichier il y avait plus simple...
Code: |
File.Copy("C:\\fichier de départ", "C:\\fichier d'arrivée", true); |
true indique si l'on doit écraser le fichier d'arriver si un fichier de même nom existe déjà. |
|
|
|
|
zowix
Accro à Web-IG
Sexe:
Messages: 176
Localisation: Grenoble - entre une chaise et un clavier
|
Posté le:
Mar 24 Oct 2006 - 15:04 |
|
ben voilà, t'as trouvé.
je dois dire que j'apprends pas des masses en cours, csharpfr.com est mon vrai prof de C#... |
_________________
acer aspire 5101 awlmi x56 monté à 1GO... ça tourne!
membre à l'essai du staff www.grenoble2night.com (zowix)
jeudi: bars / vendredi: liquid / samedi: scotch |
|
|
|
telynor
Résident du forum
Sexe:
Messages: 345
Localisation: IDF
|
Posté le:
Mer 25 Oct 2006 - 07:48 |
|
Strato a écrit: |
- Comment lancer un script en PEARL et attendre qu'il ait fini de s'exécuter (potentiellement en mettant mon programme C# en pause pendant une durée raisonnable).
|
Pour mettre ton programme en pause sans bloquer le processus principal, tourne toi vers les thread.
Un thread te permet d'executer une action en parallele de ton programme (genre attendre une reponse pendant que tu continus a bouger des fichier
http://emerica.developpez.com/csharp/threads/
Sinon pour la copie de fichier oui le FileCopy c est bien et pour le traitement de chaine le substring c est bien aussi.
bon courage pour la suite |
|
|
|
|
Strato
Résident du forum
Sexe:
Messages: 250
Localisation: Paris
|
Posté le:
Mer 25 Oct 2006 - 16:27 |
|
telynor a écrit: |
Strato a écrit: |
- Comment lancer un script en PEARL et attendre qu'il ait fini de s'exécuter (potentiellement en mettant mon programme C# en pause pendant une durée raisonnable).
|
Pour mettre ton programme en pause sans bloquer le processus principal, tourne toi vers les thread. |
En fait je me suis servi de l'instruction Process.
Code: |
Process Truc = Process.Start("pearl \"C:\\blablabla.pl\"");
Truc.Wait.For.Exit(); |
Mais j'ai pas encore pu le tester... |
|
|
|
|
telynor
Résident du forum
Sexe:
Messages: 345
Localisation: IDF
|
Posté le:
Jeu 26 Oct 2006 - 16:34 |
|
le process permet de lancer un exe.
Par contre (c est a tester) mais je pense que ton application va 'rester bloqué' jusqua la fin de l'execution.
L'avantage du thread c est que ton apply peut faire autre chose en parallele |
|
|
|
|
Strato
Résident du forum
Sexe:
Messages: 250
Localisation: Paris
|
Posté le:
Jeu 26 Oct 2006 - 18:15 |
|
telynor a écrit: |
le process permet de lancer un exe. |
Tu penses que ça ne marchera pas avec des lignes de commande qui lancent des scripts PEARL?
telynor a écrit: |
Par contre (c est a tester) mais je pense que ton application va 'rester bloqué' jusqua la fin de l'execution. |
C'est le but... Comme je ne maîtrise pour l'instant absolument pas les classes, objets, structures, et autres joyeusetés, j'ai conçu le programme pour qu'il se déroule de manière linéaire et en mode console uniquement. Donc c'est bien mon idée de lancer des applis extérieures et d'attendre qu'elles se soient terminées (et i y a un script particulier qui prend bien 30 minutes et qui doit être entièrement terminé avant qu'on lance les autres scripts).
telynor a écrit: |
L'avantage du thread c est que ton apply peut faire autre chose en parallele |
J'ai vaguement regardé et ça m'a semblé nettement plus compliqué que le Process. Mais si je suis obligé d'en passer par là...
En fait je n'ai pas encore testé le Process, je ferai ça lundi après-midi au boulot... |
|
|
|
|
telynor
Résident du forum
Sexe:
Messages: 345
Localisation: IDF
|
Posté le:
Ven 27 Oct 2006 - 07:56 |
|
hesite pas a nous tenir au courant, et si besoin on regardera ce qu'on a comme solution |
|
|
|
|
Strato
Résident du forum
Sexe:
Messages: 250
Localisation: Paris
|
Posté le:
Mar 31 Oct 2006 - 14:49 |
|
Bon. J'ai enfin pu le tester grandeur nature et après quelques tracas tout marche...
... presque. En effet, j'ai encore une petite pétouille à résoudre.
Avec mon Process je lance une ligne de commande en perl qui doit créer des fichiers HTML. Grosso modo ça ressemble à ça :
Code: |
perl "pouetpouet.pl" -output > "C:\trululu.html" |
Sauf que quand je l'exécute depuis mon programme C# avec Process, au lieu de créer le fichier HTML, il fait défiler dans la console et à vitesse grand V l'intégralité du code que devrait contenir ce fichier HTML, et il ne le crée pas.
Je sais que c'est un problème de "flux" et j'ai déjà essayé d'ajouter Process.RedirectStandardOutput = false (ou true d'ailleurs) mais ça n'a rien changé.
Est-ce que quelqu'un a une vague idée de la manière de lui faire comprendre de ne pas tenir compte de ce flux et de laisser le Process faire son affaire? |
|
|
|
|
|