IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

[C#][SQLServer] traitement d'un fichier avec un .exe externe


Sujet :

Développement Web avec .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut [C#][SQLServer] traitement d'un fichier avec un .exe externe
    Bonjour à tous !

    ¨Pour mon premier sujet ici , j'aurais voulu demander votre aide sur un gros projet qui m'est attribué et sur lequel je bloque un peu .

    Je suis sensé développé une application qui automatise le traitement de certains fichiers en fonction de leur " ID" je m'explique : J'ai à ma disposition deux .exe , un qui converti les .csv de Unix à Dos , et l'autre qui transmet directement du CSV au SQL , les deux étant exécutables seulement en ligne de commande , j'arrive parfaitement à les manier manuellement sur une console , mais quand il s'agit de coder en C# je n'arrive pas à appeler les deux exe ... Je n'arrive pas à trouver le bon code pour faire en sorte de réunir les deux fonctionnalités en une seule application . J'aurais aimer avoir un peu d'aide en ce qui concerne le code à faire , je vous joint ici le peu de code déja fait au cas ça donnerais des idées !

    Merci d'avance pour vos réponses !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.IO;
    using Microsoft.SqlServer;
    using Microsoft.VisualBasic;
    using Microsoft.CSharp;
    using System.Diagnostics;
     
     
    namespace IMR
    {
        class ProgramCSV // Début Programme 
        {     
     
            // Fonction Main 
            static void Main(string[] args)
            {
     
     
     
                DirectoryInfo dir = new DirectoryInfo("U:/Données FTP INPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101/17");
     
                Console.WriteLine("Recherche de fichier .csv :"); //Fonction de recherche de tout les fichiers .csv
                foreach (var fi in dir.EnumerateFiles("*.csv",SearchOption.AllDirectories)) //On précise qu'on veut tout les répértoires
                {
                    Console.WriteLine(fi.Name);
                    Console.WriteLine(DateTime.Now);
                }
     
                 // On apelle les deux .exe dans notre main 
                Process.Start("C:/Utilitaires/UNIX2DOS.EXE");
                Process.Start("C:/Utilitaires/Csv2Sql_new.exe");
     
     
            }
     
     
            static void LaunchCommandLineApp() //la fonction permettant de rentrer les paramétres d'execution des 2 .exe 
            {
     
     
                const string UNIX2DOS = "C:/Utilitaires/UNIX2DOS.EXE";
                const string Csv2Sql_new = "C:/Utilitaires/CsvSql_new.exe";
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.CreateNoWindow = true;
                startInfo.UseShellExecute = false;
                startInfo.FileName = "UNIX2DOS.exe"+"Csv2Sql_new";
                startInfo.WindowStyle = ProcessWindowStyle.Normal;
                startInfo.Arguments =  "/K 0101_17_20170601_070828_1_PM.csv";
     
                 try
            { 
                // On lance le programme 
                // On attends la fin du programme 
                using (Process exeProcess = Process.Start(startInfo))
                {
                    exeProcess.WaitForExit();
                }
            }
                catch
            {
                 // Log error.
            }
     
                // Instruction synchrone : Eviter la confusion lors de la consultations des logs 
                //faire des if pour push les 13 types d'objets sur les 13 tables différentes 
                //Possibilité d'argument :  "Unix2Dos" + Filename + " Csv2Sql_new" + Filename + "IMR_INPI..ID fin de fichier /force " 
     
     
                //Prototype de fonction de traitement  
                //  if fi = "*.csv" 
                        // Lancer programme " Unix2Dos" 
                // if fi = "PM.csv" 
                // if fi = "PM_EVT.csv" 
                // if fi = "PP.csv" 
                // if fi = "PP_EVT.csv" 
                // if fi = "ets.csv" 
                // if fi = "ets_nouveau_modifie.csv" 
                // if fi = "ets_supprime_EVT.csv" 
                // if fi = "rep.csv" 
                // if fi = "rep_nouveau_modifie.csv" 
                // if fi = "rep_partant.csv" 
                // if fi = "obs.csv" 
                // if fi = "actes.csv" 
                // if fi = "comptes_annuels.csv"   
                        // Lancer programme " Csv2Sql_new"
                        // Verifier qu'on est connecter à la BDD et à la bonne table 
                //Trouver un moyen d'éviter les doublons 
                //Tester Un premier dossier avant de lancer le tout 
                //Se Renseigner sur les tests unitaires 
     
     
     
     
     
                Console.ReadKey(); //On attends que l'utilisateur utilise une touche pour arrêter le processus
            }
     
        } // Fin Programme 
     
    }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.IO;
    using Microsoft.SqlServer;
    using Microsoft.VisualBasic;
    using Microsoft.CSharp;
    using System.Diagnostics;
     
     
    namespace IMR
    {
        class ProgramCSV // Début Programme 
        {     
     
            // Fonction Main 
            static void Main(string[] args)
            {
     
     
     
                DirectoryInfo dir = new DirectoryInfo("U:/Données FTP INPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101/17");
     
                Console.WriteLine("Recherche de fichier .csv :"); //Fonction de recherche de tout les fichiers .csv
                foreach (var fi in dir.EnumerateFiles("*.csv",SearchOption.AllDirectories)) //On précise qu'on veut tout les répértoires
                {
                    Console.WriteLine(fi.Name);
                    Console.WriteLine(DateTime.Now);
                }
     
                 // On apelle les deux .exe dans notre main 
                Process.Start("C:/Utilitaires/UNIX2DOS.EXE");
                Process.Start("C:/Utilitaires/Csv2Sql_new.exe");
     
     
            }
     
     
            public static void UnixToDos(string File, string outputPath) //la fonction permettant de rentrer les paramétres d'execution des 2 .exe 
            {
                ProcessStartInfo startInfo = new ProcessStartInfo("C:/Utilitaires/UNIX2DOS.EXE");
                startInfo.CreateNoWindow = true;
                startInfo.WindowStyle = ProcessWindowStyle.Normal;
                startInfo.Arguments = "Unix2Dos" + "0101_17_20170601_070828_12_actes.csv" ;
     
                try
                {
                    // On lance le programme 
                    // On attends la fin du programme 
                    using (Process exeProcess = Process.Start(startInfo))
                    {
                        exeProcess.WaitForExit();
                    }
                }
                catch
                {
                    // Log error.
                }
     
            }
     
           public static void CsvToSql(string File , string outputPath) //la fonction permettant de rentrer les paramétres d'execution des 2 .exe 
            {
                ProcessStartInfo startInfo = new ProcessStartInfo("C:/Utilitaires/UNIX2DOS.EXE");
                startInfo.CreateNoWindow = true;
                startInfo.WindowStyle = ProcessWindowStyle.Normal;
                startInfo.Arguments = "Csv2Sql_new" + "0101_17_20170601_070828_12_actes.csv" + "IMR_INPI..Acte /force " ;
                 try
            { 
                // On lance le programme 
                // On attends la fin du programme 
                using (Process exeProcess = Process.Start(startInfo))
                {
                    exeProcess.WaitForExit();
                }
            }
                catch
            {
                 // Log error.
            }
     
                // Instruction synchrone : Eviter la confusion lors de la consultations des logs 
                //faire des if pour push les 13 types d'objets sur les 13 tables différentes 
                //Possibilité d'argument :  "Unix2Dos" + Filename + " Csv2Sql_new" + Filename + "IMR_INPI..ID fin de fichier /force " 
     
     
                //Prototype de fonction de traitement  
                //  if fi = "*.csv" 
                        // Lancer programme " Unix2Dos" 
                // if fi = "PM.csv" 
                // if fi = "PM_EVT.csv" 
                // if fi = "PP.csv" 
                // if fi = "PP_EVT.csv" 
                // if fi = "ets.csv" 
                // if fi = "ets_nouveau_modifie.csv" 
                // if fi = "ets_supprime_EVT.csv" 
                // if fi = "rep.csv" 
                // if fi = "rep_nouveau_modifie.csv" 
                // if fi = "rep_partant.csv" 
                // if fi = "obs.csv" 
                // if fi = "actes.csv" 
                // if fi = "comptes_annuels.csv"   
                        // Lancer programme " Csv2Sql_new"
                        // Verifier qu'on est connecter à la BDD et à la bonne table 
                //Trouver un moyen d'éviter les doublons 
                //Tester Un premier dossier avant de lancer le tout 
                //Se Renseigner sur les tests unitaires 
     
     
     
     
     
                Console.ReadKey(); //On attends que l'utilisateur utilise une touche pour arrêter le processus
            }
     
        } // Fin Programme 
     
    }
    Nouvelle version du code un peu moins brouillon .

Discussions similaires

  1. [WD14] Ouvrir un fichier avec une application externe via LanceAppli()
    Par Fastolph dans le forum WinDev
    Réponses: 13
    Dernier message: 28/09/2011, 09h26
  2. ouvrir des fichiers avec des programmes externes
    Par julie_lab dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 25/10/2010, 06h05
  3. Lancer fichier avec espace.exe avec option
    Par maxtofurious dans le forum VBScript
    Réponses: 6
    Dernier message: 24/12/2009, 14h26
  4. Traitement des gros fichiers avec VBA sous MsACCESS
    Par GBAGO dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2008, 10h48
  5. [C#] Comment interagir avec un EXE externe ?
    Par therock dans le forum C#
    Réponses: 2
    Dernier message: 16/08/2006, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo