none
wpf ecrire dans un fichier texte suite et erreurs

    Question

  • bonjour

     j'avance doucement mais hélas reste encore deux erreurs que je comprends pas et j’aurai besoin de votre aide pour comprendre

    merci de votre aide qui est précieuse

    voici mon code cd

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Data;
    using System.Collections;
    
    namespace WpfApplication1rexxo_dtagrid_courses
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            private DataTable DataTable { get; set; }
            public DataView DataView { get; set; }
    
            public MainWindow()
            {
    
    
                InitializeComponent();
                DataTable = new DataTable();
                DataTable.Columns.Add("dates");
                DataTable.Columns.Add("periodes");
                DataTable.Columns.Add("magasin");
                DataTable.Columns.Add("produit");
                DataTable.Columns.Add("quantite");
                DataTable.Columns.Add("prix_unit");
                DataTable.Columns.Add("prix_total");
    
                DataView = DataTable.DefaultView;
    
    
                for (int i = 0; i < 2; i++)
                {
                    DataRow dr = DataTable.NewRow();
                    dr["dates"] = "20/05/2017" + i.ToString();
                    dr["periodes"] = "15jours " + i.ToString();
                    DataTable.Rows.Add(dr);
                }
                DataContext = DataView;
    
    
            }
    
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                DataRow dr = DataTable.NewRow();
                dr["dates"] = textboxdateDate.Text;
                dr["periodes"] = textboxperiode.Text;
                dr["magasin"] = textboxmagasin.Text;
                dr["produit"] =textboxproduit.Text;
                dr["quantite"] = textboxquantite.Text;
                dr["prix_unit"] = textboxprixunit.Text;
                dr["prix_total"] = textboxprixunit.Text;
    
                DataTable.Rows.Add(dr);
    
                //preparer une nouvelle entree
                textboxdateDate.Clear();
                textboxperiode.Clear();
                textboxmagasin.Clear();
                textboxproduit.Clear();
                textboxquantite.Clear();
                textboxprixunit.Clear();
                textboxprixtot.Clear();
                textboxprixtot.Background = Brushes.White;
            }
            public class Test
            {
                public string date { get; set; }
                public string periode { get; set; }
                public string magasin { get; set; }
                public string produit { get; set; }
                public string quantite { get; set; }
                public string  prix_unit { get; set; }
                public string prix_total { get; set; }
    
    
    
            }
    
            private void textboxdateDate_KeyUp(object sender, KeyEventArgs e)
            {
                textboxdateDate.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxperiode.Focus();
            }
    
            private void textboxperiode_KeyUp(object sender, KeyEventArgs e)
            {
                textboxperiode.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxmagasin.Focus();
                textboxdateDate.Background = Brushes.White;
    
            }
    
            private void textboxmagasin_KeyUp(object sender, KeyEventArgs e)
            {
                textboxmagasin.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxproduit.Focus();
                textboxperiode.Background = Brushes.White;
    
            }
    
            private void textboxproduit_KeyUp(object sender, KeyEventArgs e)
            {
                textboxproduit.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxquantite.Focus();
                textboxmagasin.Background = Brushes.White;
            }
    
            private void textboxquantite_KeyUp(object sender, KeyEventArgs e)
            {
                textboxquantite.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxprixunit.Focus();
                textboxproduit.Background = Brushes.White;
    
            }
    
            private void textboxprixunit_KeyUp(object sender, KeyEventArgs e)
            {
                textboxprixunit.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    //textboxprixunit.Focus();
                textboxquantite.Background = Brushes.White;
                textboxprixunit.Background = Brushes.White;
                textboxprixtot.Background = Brushes.Coral;
                //calcul du prix total
                decimal prix_unit = decimal.Parse(textboxprixunit.Text);
                decimal quantite = decimal.Parse(textboxquantite.Text);
                decimal prix_total = prix_unit * quantite;
                textboxprixtot.Text = prix_total.ToString("#.##");
    
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                //ecrire dans le fichier
    
                dataGrid.SelectAllCells();
    
                dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
                ApplicationCommands.Copy.Execute(null, dataGrid);
    
                dataGrid.UnselectAllCells();
    
                string result = (string)System.Windows.Clipboard.GetData(System.Windows.DataFormats.CommaSeparatedValue);
    
                //Si le fichier text n'existe pas il sera créé automatiquement
                System.IO.File.AppendAllText(@"C:\Users\Georges\Desktop\myfile1.txt", result, UnicodeEncoding.UTF8);
            
        }
    
            private void Button_Click_2(object sender, RoutedEventArgs e)
            {
                //charger les valeur du fichier
                dataGrid.ItemsSource = ReadTxt(@"\Users\Georges\Desktop\myfile1.txt");
            }
    
            private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }
            private IEnumerable<DataTable> ReadTxt(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new DataTable { TableName = data[0] };
                });
            }
        }
    }
    

    voici la copie d"écran avec les erreurs

    mardi 30 mai 2017 07:29

Réponses

  • Bonjour Simon,

    Bon bah super ! :)

    Voici le code : 

       textboxprixtot.Text =string.Concat(prix_total.ToString().Replace(",","."), " €");

    La méthode Concat() permet de concaténer plusieurs chaînes de caractère et la fonction Replace() permet de remplacer un caractère ou une chaine de caractère par un(e) autre.


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    • Marqué comme réponse SIMONGEORGES vendredi 2 juin 2017 22:15
    vendredi 2 juin 2017 17:22

Toutes les réponses

  • Bonjour Simon,

    Le souci vient de là : 

     private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }
            private IEnumerable<DataTable> ReadTxt(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new DataTable { TableName = data[0] };
                });
            }

    Vous avez deux méthodes ReadTxt avec les mêmes types de surcharges : string 

    Il faut savoir qu'il est possible d'avoir deux méthodes qui portent les mêmes noms mais pour les différencier, il faut que leurs surcharges soient différentes. 

    Pour résoudre votre problème, nommez vos méthodes différemment ou utiliser des surcharges différentes.

    Par exemple (changement de nom): 

     private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }
            private IEnumerable<DataTable> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new DataTable { TableName = data[0] };
                });
            }

    P.S : Est-ce un code finalisé? 

     private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }


    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;



    mardi 30 mai 2017 08:05
  • bonjour merci encore de votre aide

    j’ai essayé de comprendre et d'écrire votre code cela ne fonctionne pas j'ai du faire une rreur encore j’obtiens une erreur  voici la copie de l'écran

    un grand merci d'avance

    mardi 30 mai 2017 09:27
  • Voici tout le code : 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Data;
    using System.Collections;
    
    namespace WpfApplication1rexxo_dtagrid_courses
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            private DataTable DataTable { get; set; }
            public DataView DataView { get; set; }
    
            public MainWindow()
            {
    
    
                InitializeComponent();
                DataTable = new DataTable();
                DataTable.Columns.Add("dates");
                DataTable.Columns.Add("periodes");
                DataTable.Columns.Add("magasin");
                DataTable.Columns.Add("produit");
                DataTable.Columns.Add("quantite");
                DataTable.Columns.Add("prix_unit");
                DataTable.Columns.Add("prix_total");
    
                DataView = DataTable.DefaultView;
    
    
                for (int i = 0; i < 2; i++)
                {
                    DataRow dr = DataTable.NewRow();
                    dr["dates"] = "20/05/2017" + i.ToString();
                    dr["periodes"] = "15jours " + i.ToString();
                    DataTable.Rows.Add(dr);
                }
                DataContext = DataView;
    
    
            }
    
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                DataRow dr = DataTable.NewRow();
                dr["dates"] = textboxdateDate.Text;
                dr["periodes"] = textboxperiode.Text;
                dr["magasin"] = textboxmagasin.Text;
                dr["produit"] =textboxproduit.Text;
                dr["quantite"] = textboxquantite.Text;
                dr["prix_unit"] = textboxprixunit.Text;
                dr["prix_total"] = textboxprixunit.Text;
    
                DataTable.Rows.Add(dr);
    
                //preparer une nouvelle entree
                textboxdateDate.Clear();
                textboxperiode.Clear();
                textboxmagasin.Clear();
                textboxproduit.Clear();
                textboxquantite.Clear();
                textboxprixunit.Clear();
                textboxprixtot.Clear();
                textboxprixtot.Background = Brushes.White;
            }
            public class Test
            {
                public string date { get; set; }
                public string periode { get; set; }
                public string magasin { get; set; }
                public string produit { get; set; }
                public string quantite { get; set; }
                public string  prix_unit { get; set; }
                public string prix_total { get; set; }
    
    
    
            }
    
            private void textboxdateDate_KeyUp(object sender, KeyEventArgs e)
            {
                textboxdateDate.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxperiode.Focus();
            }
    
            private void textboxperiode_KeyUp(object sender, KeyEventArgs e)
            {
                textboxperiode.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxmagasin.Focus();
                textboxdateDate.Background = Brushes.White;
    
            }
    
            private void textboxmagasin_KeyUp(object sender, KeyEventArgs e)
            {
                textboxmagasin.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxproduit.Focus();
                textboxperiode.Background = Brushes.White;
    
            }
    
            private void textboxproduit_KeyUp(object sender, KeyEventArgs e)
            {
                textboxproduit.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxquantite.Focus();
                textboxmagasin.Background = Brushes.White;
            }
    
            private void textboxquantite_KeyUp(object sender, KeyEventArgs e)
            {
                textboxquantite.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    textboxprixunit.Focus();
                textboxproduit.Background = Brushes.White;
    
            }
    
            private void textboxprixunit_KeyUp(object sender, KeyEventArgs e)
            {
                textboxprixunit.Background = Brushes.LightBlue;
                if (e.Key == Key.Enter)
                    //textboxprixunit.Focus();
                textboxquantite.Background = Brushes.White;
                textboxprixunit.Background = Brushes.White;
                textboxprixtot.Background = Brushes.Coral;
                //calcul du prix total
                decimal prix_unit = decimal.Parse(textboxprixunit.Text);
                decimal quantite = decimal.Parse(textboxquantite.Text);
                decimal prix_total = prix_unit * quantite;
                textboxprixtot.Text = prix_total.ToString("#.##");
    
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                //ecrire dans le fichier
    
                dataGrid.SelectAllCells();
    
                dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
                ApplicationCommands.Copy.Execute(null, dataGrid);
    
                dataGrid.UnselectAllCells();
    
                string result = (string)System.Windows.Clipboard.GetData(System.Windows.DataFormats.CommaSeparatedValue);
    
                //Si le fichier text n'existe pas il sera créé automatiquement
                System.IO.File.AppendAllText(@"C:\Users\Georges\Desktop\myfile1.txt", result, UnicodeEncoding.UTF8);
            
        }
    
            private void Button_Click_2(object sender, RoutedEventArgs e)
            {
                //charger les valeur du fichier
                dataGrid.ItemsSource = ReadFile(@"\Users\Georges\Desktop\myfile1.txt");
            }
    
            private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }
            private IEnumerable<DataTable> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new DataTable { TableName = data[0] };
                });
            }
        }
    }

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mardi 30 mai 2017 09:33
  • cela fonctionne bien je peux écrire dans le fichier par contre pour lire le fichier et le mettre dans le datagrid voila ce que cela donne e tle copie du fichier un grand merci encore

    mardi 30 mai 2017 10:07
  • Comme nous en avions parlé sur ce post : https://social.msdn.microsoft.com/Forums/en-US/15b652fa-fcea-4fbc-a3fb-8c5b8bd12797/wpf-ecrire-le-fichier-dun-data-grid-view-non-li-une-base-de-donnes?forum=visualcsharpfr

    Vous devez donc changer ce code : 

     private IEnumerable<DataTable> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new DataTable { TableName = data[0] };
                });
            }

    Par celui-ci: 

    private IEnumerable<Test> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new Test { date= data[0], periode= data[1], magasin=data[2], produit=data[3], quantite=data[4], prix_unit=data[5], prix_total[6] };
                });
            }

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mardi 30 mai 2017 10:37
  • je vais tester

    mardi 30 mai 2017 12:11
  • bonjour  en copiant votre code je trouve la ligne  bizarre y a til une erreur con,cernan le  prix total

    merci d'avance

       return new Test { date= data[0], periode= data[1], magasin=data[2], produit=data[3], quantite=data[4], prix_unit=data[5], prix_total[6] };
                });

    mardi 30 mai 2017 13:35
  • Oui c'est une erreur. Voici la correction: 


    private IEnumerable<Test> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new Test { date= data[0], periode= data[1], magasin=data[2], produit=data[3], quantite=data[4], prix_unit=data[5], prix_total=[6] };
                });
            }


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mardi 30 mai 2017 13:54
  • bonsoir

    j'aitoujours une erreur avec le prix total je comprends pas  merci de me corriger

    mardi 30 mai 2017 21:23
  • Bonjour Simon,

    Voici tout le code. J'ai testé et tout fonctionne chez moi (voir image ci-dessous) 

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfApp1
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
    
                private DataTable DataTable { get; set; }
                public DataView DataView { get; set; }
                public object i { get; private set; }
    
                public MainWindow()
                {
    
    
                    InitializeComponent();
                    DataTable = new DataTable();
                    DataTable.Columns.Add("dates");
                    DataTable.Columns.Add("periodes");
                    DataTable.Columns.Add("magasin");
                    DataTable.Columns.Add("produit");
                    DataTable.Columns.Add("quantite");
                    DataTable.Columns.Add("prix_unit");
                    DataTable.Columns.Add("prix_total");
    
                    DataView = DataTable.DefaultView;
    
    
                    for (int i = 0; i < 2; i++)
                    {
                        DataRow dr = DataTable.NewRow();
                        dr["dates"] = "20/05/2017" + i.ToString();
                        dr["periodes"] = "15jours " + i.ToString();
                        DataTable.Rows.Add(dr);
                    }
                    DataContext = DataView;
    
    
                }
    
    
                private void Button_Click_1(object sender, RoutedEventArgs e)
                {
                    DataRow dr = DataTable.NewRow();
                    dr["dates"] = textboxdateDate.Text;
                    dr["periodes"] = textboxperiode.Text;
                    dr["magasin"] = textboxmagasin.Text;
                    dr["produit"] = textboxproduit.Text;
                    dr["quantite"] = textboxquantite.Text;
                    dr["prix_unit"] = textboxprixunit.Text;
                    dr["prix_total"] = textboxprixtot.Text;
    
                    DataTable.Rows.Add(dr);
    
    
                    //preparer une nouvelle entree
                    textboxdateDate.Clear();
                    textboxperiode.Clear();
                    textboxmagasin.Clear();
                    textboxproduit.Clear();
                    textboxquantite.Clear();
                    textboxprixunit.Clear();
                    textboxprixtot.Clear();
                    textboxprixtot.Background = Brushes.White;
                }
                public class Test
                {
                    public string date { get; set; }
                    public string periode { get; set; }
                    public string magasin { get; set; }
                    public string produit { get; set; }
                    public string quantite { get; set; }
                    public string prix_unit { get; set; }
                    public string prix_total { get; set; }
    
    
    
                }
    
                private void textboxdateDate_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxdateDate.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        textboxperiode.Focus();
                }
    
                private void textboxperiode_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxperiode.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        textboxmagasin.Focus();
                    textboxdateDate.Background = Brushes.White;
    
                }
    
                private void textboxmagasin_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxmagasin.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        textboxproduit.Focus();
                    textboxperiode.Background = Brushes.White;
    
                }
    
                private void textboxproduit_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxproduit.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        textboxquantite.Focus();
                    textboxmagasin.Background = Brushes.White;
                }
    
                private void textboxquantite_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxquantite.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        textboxprixunit.Focus();
                    textboxproduit.Background = Brushes.White;
    
                }
    
                private void textboxprixunit_KeyUp(object sender, KeyEventArgs e)
                {
                    textboxprixunit.Background = Brushes.LightBlue;
                    if (e.Key == Key.Enter)
                        //textboxprixunit.Focus();
                        textboxquantite.Background = Brushes.White;
                    textboxprixunit.Background = Brushes.White;
                    textboxprixtot.Background = Brushes.Coral;
    
                    //calcul du prix total
                    decimal prix_unit = decimal.Parse(textboxprixunit.Text);
                    decimal quantite = decimal.Parse(textboxquantite.Text);
                    decimal prix_total = prix_unit * quantite;
                    textboxprixtot.Text = prix_total.ToString("#.##" + "€");
    
                }
    
                private void Button_Click(object sender, RoutedEventArgs e)
                {
                    //ecrire dans le fichier
    
                    dataGrid.SelectAllCells();
    
                    dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
                    ApplicationCommands.Copy.Execute(null, dataGrid);
    
                    dataGrid.UnselectAllCells();
    
                    string result = (string)System.Windows.Clipboard.GetData(System.Windows.DataFormats.CommaSeparatedValue);
    
                    //Si le fichier text n'existe pas il sera créé automatiquement
                    System.IO.File.AppendAllText(@"C:\Users\Georges\Desktop\myfile1.txt", result, UnicodeEncoding.UTF8);
    
                }
    
                private void Button_Click_2(object sender, RoutedEventArgs e)
                {
                    //charger les valeur du fichier
                    dataGrid.ItemsSource = ReadFile(@"\Users\Georges\Desktop\myfile1.txt");
                }
    
                private IEnumerable ReadTxt(string v)
                {
                    throw new NotImplementedException();
                }
                private IEnumerable<Test> ReadFile(string fileName)
                {
    
                    string[] lines = System.IO.File.ReadAllLines(fileName);
    
                    return lines.Select(line =>
                    {
                        string[] data = line.Split(';');
    
                        return new Test { date = data[0], periode = data[1], magasin = data[2], produit = data[3], quantite = data[4], prix_unit = data[5], prix_total = data[6] };
                    });
                }
                private void button_effacer_Click(object sender, RoutedEventArgs e)
                {
    
                    dataGrid.Items.Clear();
                    //dataGrid.Items.Refresh();
    
                }
    
            }
        }
    
    

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mercredi 31 mai 2017 05:45
  • bonjour

    je viens de corriger mon code et j'ai toujours une erreur que comprends

    voici la copie ecran d el'erreur

    merci encore de votre patience envers mon égard

    mercredi 31 mai 2017 07:40
  • Simon, avez-vous vu ma dernière réponse (celle où j'ai joins une copie d'écran)? Si oui, recopiez tout mon code s'il vous plaît. L'erreur dans votre code c'est parce que vous n'avez pas respecté' La syntaxe. Vous devez écrire : prix_total = data[6] et non prix_total = [6]

    Et pas de soucis, Il s'agit d'un site d'entraide communautaire. C'est normal :)


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;



    mercredi 31 mai 2017 09:34
  • je viens de corriger cela mais j'obtiens une erreur bizarre pouvez vous m'expliquer à la corrige

    merci encore

    mercredi 31 mai 2017 10:02
  • Simon,

    Je veux bien vous aider mais le soucis c'est que je vous ai communiqué une réponse (celle où y a une capture d'écran) qui fonctionne parfaitement en vous demandant de le copier le code et de le coller.

    A plusieurs reprises je vous ai demandé si vous l'avez vu mais je n'ai eu aucun retour de votre part dans ce sens.

    L'erreur que vous avez est dûe au type que renvoie votre méthode.

    Vous avez conservé votre ancien code à savoir : 

    private IEnumerable<DataTable> ReadFile(string fileName)

    Donc veuillez supprimer votre méthode ReadFile et la remplacer par celle qui figure sur le code de ma réponse avec capture d'écran. A savoir : 

    private IEnumerable<Test> ReadFile(string fileName)
                {
    
                    string[] lines = System.IO.File.ReadAllLines(fileName);
    
                    return lines.Select(line =>
                    {
                        string[] data = line.Split(';');
    
                        return new Test { date = data[0], periode = data[1], magasin = data[2], produit = data[3], quantite = data[4], prix_unit = data[5], prix_total = data[6] };
                    });
                }

    Veuillez utiliser le code où y a la copie d'écran. Si vous me dites qu'il y a des erreurs en utilisant le code que je préconise c'est autre chose.

    Merci d'avance


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;


    mercredi 31 mai 2017 10:36
  • bonjour

    je vous demande d em'excuser mais je peux dire que grace à vous j'avance bien je vien de fiare ce que vous m'avez dit il ya encore une petite erreur au moment d ela lecture du fichier j'otien l'erreur suivantje n'ai pa smarque les reponses car j'avais des erreurs je la marquerias quand tout sera bien

    merci encore

    jeudi 1 juin 2017 09:38
  • Bonjour Simon,

    Veuillez poster le code de la méthode ReadFile ainsi que celle de la classe Test?


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    jeudi 1 juin 2017 10:19
  • je vous envoi les codes  readfile et classe test
            public class Test
            {
                public string date { get; set; }
                public string periode { get; set; }
                public string magasin { get; set; }
                public string produit { get; set; }
                public string quantite { get; set; }
                public string prix_unit { get; set; }
                public string prix_total { get; set; }
    
    
    
            }
    
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                //ecrire dans le fichier
    
                dataGrid.SelectAllCells();
    
                dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
                ApplicationCommands.Copy.Execute(null, dataGrid);
    
                dataGrid.UnselectAllCells();
    
                string result = (string)System.Windows.Clipboard.GetData(System.Windows.DataFormats.CommaSeparatedValue);
    
                //Si le fichier text n'existe pas il sera créé automatiquement
                System.IO.File.AppendAllText(@"C:\Users\Georges\Desktop\myfile1.txt", result, UnicodeEncoding.UTF8);
    
            }
    
            private void Button_Click_2(object sender, RoutedEventArgs e)
            {
                //charger les valeur du fichier
                dataGrid.ItemsSource = ReadFile(@"\Users\Georges\Desktop\myfile1.txt");
            }
    
            private IEnumerable ReadTxt(string v)
            {
                throw new NotImplementedException();
            }
            private IEnumerable<Test> ReadFile(string fileName)
            {
    
                string[] lines = System.IO.File.ReadAllLines(fileName);
    
                return lines.Select(line =>
                {
                    string[] data = line.Split(';');
    
                    return new Test { date = data[0], periode = data[1], magasin = data[2], produit = data[3], quantite = data[4], prix_unit = data[5], prix_total = data[6] };
                });
            }
    

    en esperant que vous pourrez  me corriger l'erreur un grand merci
    jeudi 1 juin 2017 10:33
  • De mon côté je ne trouve pas d'erreur désolé.

    Normalement en reprenant dans son INTEGRALITE le code que je vous ai envoyé ça devrait fonctionner chez vous.

    Je n'ai pas d'autres pistes désolé.


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    jeudi 1 juin 2017 11:17
  • je viens de recopier tout votre code et j’obtiens toujours l'erreur de dépassement concernant l’index qui se trouve hors  du datagrid

    je pensais que je  devrait gérer cette exception par un try  cah mais je sais pas le faire pouvez vous me l'expliquer merci d'avance

    jeudi 1 juin 2017 13:14
  • me revoilà

    je pense avoir trouvé l'erreur  j’ai fait une copie d'écran du ficher text  et je viens de m’apercevoir que le prix_total est décimal et donc comporte une virgule comment fait pour le replacer par un point car je crois que la virgule  du prix total est considéré comme un séparateur de data dans le fichier et donc pour lui il en compte 7 au lieu de 6

     comment puis je corriger cela

    merci beaucoup

    jeudi 1 juin 2017 13:42
  • Bonjour Simon,

    Bon bah super ! :)

    Voici le code : 

       textboxprixtot.Text =string.Concat(prix_total.ToString().Replace(",","."), " €");

    La méthode Concat() permet de concaténer plusieurs chaînes de caractère et la fonction Replace() permet de remplacer un caractère ou une chaine de caractère par un(e) autre.


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    • Marqué comme réponse SIMONGEORGES vendredi 2 juin 2017 22:15
    vendredi 2 juin 2017 17:22