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 :

recherche dans un fichier prn


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 105
    Par défaut recherche dans un fichier prn
    Bonjour à tous !

    Voilà, pour commencer je ne suis pas développeur c#, mais plutôt c/c++ (donc je m'en sors en général ... =p)


    Enfin bref. En gros, j'ai un fichier *.prn qui est structuré comme ceci :

    A022;3545020004715;G2;O
    A023;3545020005439;G2;O
    Le saut de ligne est saut de ligne, enfin bref en fait ca serai un *.xls ca marcherai pareil =)

    Ce que je souhaite faire, c'est lorsque sur une saisie je tappe (en gardant l'exemple ci-dessus)
    3545020004715
    ca m'affiche
    G2

    simple non?
    bon le truc c'est que je ne veux pas lire le fichier à chaque saisie, ca serai trop long (il y a plusieurs milliers de lignes)

    Par contre, en utilisant la recherche sous excel, c'est très rapide ! (et malheureusement je ne peux pas le faire sous windows ce 6.0 >_<)

    N'y a t'il pas un moyen d'ouvrir un fichier excel en c# et de faire une recherche dedans de manière rapide ?

    Merci pour votre aide ! (et votre patience pour avoir lu jusque là \o/)

    Bne journée,
    naga

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Tu peux éventuellement lire ton fichier prn et le mettre en mémoire dans un dictionnaire...
    Un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    string[] ligne;
          string[] fichier = File.ReadAllLines("mon fichier");
          Dictionary<string, string[]> lignes = new Dictionary<string, string[]>();
          foreach (string s in fichier)
          {
            ligne = s.Split(';');
            lignes.Add(ligne[1], ligne);
          }
     
          MessageBox.Show(lignes["3545020004715"][2]);

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 105
    Par défaut
    merci de ton aide.

    J'avais justement pensé à une solution tel que celle là (je pensais à une bd)


    Mais j'ai un petit soucis, je n'ai pas la fonction file Oo.

    Je suis sur un projet smart device/windows CE 5.0/application smart device
    Ça en serai la cause ? Ça m'embête si je ne peux pas manipuler de fichier >_<

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 105
    Par défaut
    re,

    J'ai peu être trouvé, mais je ne peux pas utiliser

    OpenFileDialog.Openfile()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
                Stream mystream;
     
                openFileDialog1.InitialDirectory = "c:\\";
                openFileDialog1.Filter = "prn files (*.prn)|*.prn|All files (*.*)|*.*";
                openFileDialog1.FilterIndex = 2;
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    mystream = openFileDialog1.Openfile();
                }
    J'ai cette erreur :
    C:\Users\nagaDscar\Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\Form1.cs(36,44): erreur CS0117: 'System.Windows.Forms.OpenFileDialog' ne contient pas de définition pour 'Openfile'
    pourtant quand je regarde sur internet, il suffi juste de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using System.Windows.Forms;
    Vous savez pourquoi ?

    merci d'avance,
    naga

  5. #5
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Ce ne serait pas plutôt FileName ???

    Je crache tout et je recommence...
    Utilise un StreamReader et fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader(openFileDialog.FileName, Encoding.Default);
    Le framwork pour CE est fortement limité et certaines fonction n'existent pas...

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 105
    Par défaut
    oui je m'en suis rendu comte ^^

    J'ai tout de même réussi à palier mon problème (peu être du bidouillage mais bon)

    Voici donc ma solution :

    en en-tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Windows.Forms;
    using System.IO;
    dans la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
     
                openFileDialog1.InitialDirectory = "c:\\";
                openFileDialog1.Filter = "prn files (*.prn)|*.prn|All files (*.*)|*.*";
                openFileDialog1.FilterIndex = 2;
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                     StreamReader monStreamReader = new StreamReader(openFileDialog1.FileName));
                     string ligne = monStreamReader.ReadLine();
                     label1.Text = ligne;
                     monStreamReader.Close();                 
                }

    donc là je lis juste la première ligne du fichier et l'écrit dans mon label.

    Je vais donc tester ce que tu m'as donné tout à l'heure pour le mettre en mémoire dans un dictionnaire et je te redis ca !

    PS : je fais du csharp depuis ce matin 9h donc bon ^^

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

Discussions similaires

  1. Améliorer la recherche dans un fichier?
    Par abdmaa dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 09/05/2005, 13h09
  2. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 22h51
  3. Rechercher dans un fichier avec emacs
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 10h28
  4. recherche dans un fichier xml (castor)
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2004, 14h28
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

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