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

Framework .NET Discussion :

Comment charger un fichier en mémoire ?


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut Comment charger un fichier en mémoire ?
    Bonjour,

    J'aimerais récupérer un fichier en mémoire et, une fois chargé, qu'il ne garde pas de référence au fichier lui-même. Voici ce que je voudrais faire:

    - Création d'un fichier temporaire
    - Ouverture du fichier dans une variable
    - Suppression physique du fichier tout en le gardant actif en mémoire.

    Je ne sais pas quel objet pourrait être traité comme un fichier sans avoir une référence sur un fichier physique.

    Je sais que ça peut paraître étrange mais j'ai des raisons de devoir faire de cette façon qui seraient un peu long à expliquer ici...

    Merci de votre aide,

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    bonjour,
    je te donne le lien de la qui traite des fichiers .. tu devrais trouver ton bonheur ...

    http://faqcsharp.developpez.com/?page=file

  3. #3
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Merci pour ta réponse.

    Tu dois probablement faire référence à la rubrique "Comment charger une image tout en libérant les ressources ?". J'avais effectivement consulté la FAQ avant de faire mon post. Malheureusement, le fichier que je voudrais utiliser peut-être de différent type (txt, xml, pdf, doc, gif, ...). L'objet devrait être "Générique".

    Merci,

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    Si ton fichier contient du texte tu fait un streamreader sur tout le fichier
    (par exemple si tu as un csv tu creés une arrayliste et avec le streamreader tu la remplis ... )

    donc la tu as ton fichier en mémoire et apres tu le deletes

    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
     
    public static ArrayList lectureFichier(string fichierpath) 
    { 
    	ArrayList Fichier = new ArrayList();
    	try 
    	{ 
    		StreamReader monStreamReader = new StreamReader(fichierpath); 
    		string ligne = monStreamReader.ReadLine(); 
    		while (ligne != null) 
    		{ 
    			string [] tab = ligne.Split(';');
    			for(int i = 0 ; i < tab.Length ; i++)
    			{
    				Fichier.Add(tab[i]);
    			}
    			ligne = monStreamReader.ReadLine(); 
    		} 
    	monStreamReader.Close(); 
    	} 
    	catch 
    	{
    		Fichier.Add("Erreur");
    	} 
    return(Fichier);
    }

  5. #5
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Merci encore pour ta réponse rapide...

    Effectivement, c'est l'objet StreamReader que j'utilise présentement. Par contre, dans mon cas j'utilise la méthode ReadToEnd() de l'objet pour charger l'ensemble du fichier dans une variable string.

    Une fois de plus, ceci peut très bien fonctionner pour des fichiers de type texte ou encore xml mais deux problèmes se posent à moi. Premièrement, si le fichier est un gif, un zip ou un pdf par exemple, je ne peux pas le traiter comme un fichier texte. Deuxièmement, j'aimerais pouvoir traiter l'objet comme si c'était un fichier et utiliser, par exemple une méthode save().

    Merci,

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    tiens essaies ca :

    http://msdn.microsoft.com/library/fr...classtopic.asp
    si ca ne t'aide pas n'hesites pas

  7. #7
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Citation Envoyé par Capt. Flame
    Je ne sais pas quel objet pourrait être traité comme un fichier sans avoir une référence sur un fichier physique.
    T'as un problème de conception des choses.
    Un fichier c'est un ensemgble de données physiquement présentes dans un système de fichier, donc sur un disque dur.
    Si tu as un fichier en mémoire, ce n'est plus un fichier, c'est des données.

    Donc en fait, tu veux juste charger des données ? Bah il est où le pb ? Quand tu créé une string, tu créé bien une donnée en mémoire, non ?
    Après un fichier complet c'est soit une grande string, soit un tableau de lignes (string aussi). Ou si ton fichier est binaire, un tableau de byte.

  8. #8
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Il existe d'ailleurs les méthodes suivantes :

    File.ReadAllBytes
    File.ReadAllLines
    File.ReadAllText

    La première étant uniquement disponible depuis le framework 2.0

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/07/2006, 16h22
  2. Réponses: 2
    Dernier message: 14/04/2006, 11h20
  3. Comment charger un fichier 3d ..
    Par Happy dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/09/2005, 09h18
  4. [Forms6i] Comment charger les fichiers du client ?
    Par patmaba dans le forum Forms
    Réponses: 10
    Dernier message: 31/01/2005, 16h17
  5. [Dexplore] Comment charger des fichiers d'aide ?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 5
    Dernier message: 04/01/2005, 17h38

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