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

C# Discussion :

Convertir un fichier .txt en un fichier .sql


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut Convertir un fichier .txt en un fichier .sql
    Bonjour,

    J'ai pour projet de convertir un fichier texte (qui sera afficher par importation préalablement sur un label sur l'interface graphique Window Forms), où il y a :

    CodeC;NomC;AdresseC;VilleC;CPC;TelC
    C1;SF Belleville;;Verdun;55100;
    C2;SCA Epinal;;Epinal;88000;
    C3;USL Mineenne;;St Mihiel;55300;
    C4;FC Toul;;Toul;54200;
    C5;US Etain;;Etain;55400;
    C6;ESP Lunéville;;Lunéville;54300;
    C7;FC Velaines;;Velaines;55500;
    C8;FCSTD;;Saint Dié;88100;
    C9;District Vosges;;Epinal;88000;
    C10;FC Val Dunois;;Behonne;55000;
    C11;FC Bruch Forbach;;Forbach;76000;
    C12;FC Commercy;;Velaines;55500;

    Directement dans un label à côté (converti en SQL) en appuyant sur un bouton convertir.
    J'ai programmé le fait d'enregistrer le fichier en .sql en appuyant sur un bouton "Save..."

    Où j'en suis :


    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace fichiers
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                string path = "..\\..\\..\\";
                string path2 = path;
                string nomFichier = "listeSIO1A.txt";
                path = path + nomFichier;
            }
     
            private void btnDriveInfo_Click(object sender, EventArgs e)
            {
                DriveInfo[] drives = DriveInfo.GetDrives();
     
                foreach(DriveInfo unDrive in drives)
                {
                    if (unDrive.IsReady)
                    {
                        MessageBox.Show(unDrive.Name.ToString() + "  " + unDrive.DriveType.ToString() + unDrive.TotalSize.ToString() + " " + unDrive.TotalFreeSpace.ToString());
                    }
                    else
                    {
                        MessageBox.Show(unDrive.Name.ToString() + "  " + unDrive.DriveType.ToString());
                    }
     
                }
     
            }
     
            private void FBD_Click(object sender, EventArgs e)
            {
                if (FBD.ShowDialog() == DialogResult.OK)
                {
                    txbDossier.Text = FBD.SelectedPath;
                }
     
            }
     
            private void btnOFD_Click(object sender, EventArgs e)
            {
                String ligne;
                OFD.Title = "Les fichiers texte."; //titre de la boite de dialogue
                OFD.Filter = "Fichiers texte|*.txt";// Filtre : n'affiche que les fichiers ".txt"
     
                if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    try
                    {
                        lbxFichiers.Items.Clear();  // vider la listbox
                        StreamReader SR = new StreamReader(OFD.OpenFile()); // Ouvrir le flux en lecture
                        while ((ligne = SR.ReadLine()) != null) //lire le fichier ligne par ligne 
                        {
                            lbxFichiers.Items.Add(ligne); // copier les lignes du fichier dans la listBox
                        }
                        SR.Close(); // fermer le flux
                    }
                    catch
                    {
                        MessageBox.Show("Erreur: Lecture du fichier impossible");
                    }
                }
            }
     
     
            private void btnSFD_Click(object sender, EventArgs e)
            {
                SFD.InitialDirectory = @"C:\";
                SFD.DefaultExt = "sql";
                SFD.ShowDialog();
     
                if (SFD.FileName != "")
                {
                    StreamWriter fsWriter = new StreamWriter(SFD.OpenFile());
                    fsWriter.Write(lbxSql.Text);
                    fsWriter.Close();
                    fsWriter.Dispose();
                }
     
            }
     
            private void btnConvert_Click(object sender, EventArgs e)
            {
     
            }
     
            private void lbxFichiers_SelectedIndexChanged(object sender, EventArgs e)
            {
     
            }
     
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
     
            }
        }
    }
    Merci de votre future aide !

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Les questions à 10 balles :

    Sais-tu ce qu'est une base de données et sa constitution ?
    Le langage SQL ?

    Après t'être posé les bonnes questions alors tu pourras résoudre ton problème !

    On ne trouve pas de solutions sans connaître à minima le domaine et le périmètre d'un projet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Bonjour,

    Oui bien sûr que je sais ce qu'est une base donnée et sa constitution, mais je ne vois pas où vous voulez en venir

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Ben déjà tu veux faire un fichier SQL qui contient quel(s) type(s) d'instruction(s) ? Des inserts, des updates etc. ?

    De quel SQL parles-tu ? De T-SQL ? PL/SQL ? Etc.

    Etc. Etc.

    Pour l'instant tu as un contenu en CSV et on ne sait pas vraiment ce que tu veux en faire. Y a mille possibilités

  5. #5
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Il veut dire que "Convertir un fichier .txt en fichier .sql" ça n'a aucun sens. Tandis que par exemple "j'ai des données dans un fichier csv et je souhaite générer un script sql permettant d'insérer ces données dans une base relationnelle", en précisant au passage le format d'origine des données et le format de destination, c'est déjà plus précis et ça permet d'orienter les réponses :
    - comment extraire les données depuis le fichier csv (par exemple avec string.Split) ;
    - voir en sql l'instruction insert pour ajouter un enregistrement en base ;
    - string.Format pour créer des chaînes formatées ;
    - utiliser un StringBuilder pour des questions de performance...

    Comme on dit parfois ici : aide-nous à t'aider.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 457
    Par défaut
    Salut,

    ça fait 4 fois que je relis depuis hier, et j'ai l'impression que tu as oublié de poser ta question en fait.
    Tu dis ou tu en es, tu livres ton code...
    Etant un gros flemmard (désolé) à moins d'une question précise je ne vais pas examiner le code pour voir si le projet répond au cahier des charges ou pas. (Surtout que je ne suis pas un expert mais j'ai un peu l'habitude des bdd ayant développé des sites y'a longtemps.)

    En gros d'après ton fichier txt tu dois lire ligne par ligne, donc ouvrir le fichier, lire une ligne...

    La première devrait te permettre de rentrer les clés vers des dictionnaires, sinon elle est inutile si tu bosses avec une classe.

    Les autres lignes; une fois la première traitée, doivent déboucher sur un traitement permettant donc soit de remplir un dictionnaire, donc commencer par faire un tableau avec la chaine en te basant sur le caractère ';' pour séparer. Et ensuite faire passer chaque valeur dans le dico. Ou si tu bosses avec une classe (qui parait plus simple) tu vas dire que le champ CP par exemple c'est ton array[0] et ainsi de suite, ligne par ligne.

    Pour le reste la finalité, chaque instance de cette classe devra être entrée via une REQUETE SQL "INSERT INTO [nomdelatable] ([CHAMP1])VALUES('valeur1')" ... (par exemple et à vue de nez en espérant ne pas avoir fait une erreur), dans la base de donnée.
    On néglige ici les requêtes paramétrées vu l’utilisation.

    Parce que tu pourras pas faire un base de donnée, comme ça, SQL ... Ca signifierait que tu développes ton propre moteur de base de donnée. Donc j'imagine que tu veux faire un fichier que tu vas uploader mettons vers phpmyadmin et qui va donc permettre l'importation de tes données.

  7. #7
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Citation Envoyé par daerlnaxe Voir le message
    On néglige ici les requêtes paramétrées vu l’utilisation.
    Tu mériterais d'aller coder en WinDev en enfer pendant l'éternité pour des propos pareils . On applique toujours les bonnes pratiques

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par Max Voir le message
    Tu mériterais d'aller coder en WinDev en enfer pendant l'éternité pour des propos pareils . On applique toujours les bonnes pratiques
    pour des int provenant du code je concatène, je dois aller en enfer faire du windev aussi ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/07/2016, 12h54
  2. Réponses: 19
    Dernier message: 25/09/2015, 14h12
  3. copie le contenu d'un fichier xls dans un fichier txt
    Par mariafan dans le forum Langage
    Réponses: 22
    Dernier message: 09/08/2007, 14h07
  4. [VBA-E]Ouvrir un fichier.csv ou un fichier.txt séparateur ";"
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 12h09
  5. converssion de fichier .dbf en un fichier .txt
    Par colombe dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/07/2006, 17h17

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