2011-04-08 7 views
2

Ce travail ne marche pas:Ouvrir un fichier de ressources avec StreamReader?

string fileContent = Resource.text; 
    StreamReader read = File.OpenText(fileContent); 

    string line; 
      char[] splitChar = "|".ToCharArray(); 

      while ((line = read.ReadLine()) != null) 
      { 
       string[] split = line.Split(splitChar); 
       string name = split[0]; 
       string lastname = split[1]; 

      } 

      read.Dispose(); 

Comment ouvrir un fichier de ressources pour obtenir son contenu?

+2

Que signifie « ne fonctionne pas » signifier? Est-ce qu'il lance une exception? Est-ce qu'il échoue silencieusement? –

+2

Voir: http://stackoverflow.com/questions/5342975/get-a-textreader-from-a-stream/5343005#5343005 –

+0

Un fichier de ressources est généralement un fichier binaire. La lire avec un StreamReader ne vous donnera probablement pas l'information que vous voulez. Voir la réponse que @Arnaud F. a fournie pour lire une ressource texte d'un flux. –

Répondre

5

Essayez comme ceci:

string fileContent = Resource.text; 
using (var reader = new StringReader(fileContent)) 
{ 
    string line; 
    while ((line = reader.ReadLine()) != null) 
    { 
     string[] split = line.Split('|'); 
     string name = split[0]; 
     string lastname = split[1]; 
    } 
} 
+0

J'ai un fichier appelé security.file. C'est un fichier texte et quand j'affecte Resource.text à fileContent. C'est un octet [] et ne peut être implicitement converti en chaîne –

0

Je pense que la variable fileContent a déjà tout le contenu dont vous avez besoin.

0

pour lire des ressources, vous avez besoin d'un flux spécial nommé « ResourceReader », vous pouvez l'utiliser comme ceci:

string fileContent = "<your resource file>"; 

using (ResourceReader reader = new ResourceReader(fileContent)) 
{ 
    foreach (IDictionaryEnumerator dict in reader) 
    { 
     string key = dict.Key as string; 
     object val = dict.Value; 
    } 
} 
Questions connexes