2010-12-08 43 views

Répondre

5

Si vous voulez lire le fichier sous forme de texte, les caractères sauter (non octets):

using (var textReader = System.IO.File.OpenText(path)) 
{ 
    // read and disregard the first 977 chars 
    var buffer = new char[977]; 
    textReader.Read(buffer, 0, buffer.Length); 

    // read 200 chars 
    buffer = new char[200]; 
    textReader.Read(buffer, 0, buffer.Length); 
} 

Si vous voulez simplement sauter un certain nombre d'octets (non caractères):

using (var fileStream = System.IO.File.OpenRead(path)) 
{ 
    // seek to starting point 
    fileStream.Seek(977, SeekOrigin.Begin); 

    // read 200 bytes 
    var buffer = new byte[200]; 
    fileStream.Read(buffer, 0, buffer.Length); 
} 
1
using (var fileStream = System.IO.File.OpenRead(path)) 
{ 
    // seek to starting point 
    fileStream.Position = 977; 

    // read 
} 
1

si vous voulez lire des types de données spécifiques à partir de fichiers System.IO.BinaryReader est le meilleur choix. si vous n'êtes pas sûr de fichier encodage utilisé

 using (var binaryreader = new BinaryReader(File.OpenRead(path))) 
     { 
      // seek to starting point 
      binaryreader.ReadChars(977); 
      // read 
      char[] data = binaryreader.ReadChars(200); 
      //do what you want with data 
     } 

autre si vous connaissez la taille des caractères de la taille du fichier source sont 1 ou 2 utilisation d'octets

 using (var binaryreader = new BinaryReader(File.OpenRead(path))) 
     { 
      // seek to starting point 
      binaryreader.BaseStream.Position = 977 * X;//x is 1 or 2 base on character size in sourcefile 
      // read 
      char[] data = binaryreader.ReadChars(200); 
      //do what you want with data 
     } 
2

vous pouvez utiliser Linq et tableau de conversion de char à ficeler.

ajouter ces namespace:

using System.Linq; 
using System.IO; 

alors vous pouvez l'utiliser pour obtenir un tableau de caractères index à partir d'un autant que caractères b de votre fichier texte:

char[] c = File.ReadAllText(FilePath).ToCharArray().Skip(a).Take(b).ToArray(); 

Ensuite, vous peut avoir une chaîne, comprend des caractères continus de c:

string r = new string(c); 

par exemple, j'ai ce texte dans un fichier:

bonjour comment allez-vous?

i utiliser ce code:

char[] c = File.ReadAllText(FilePath).ToCharArray().Skip(6).Take(3).ToArray();    
string r = new string(c); 
MessageBox.Show(r); 

et il montre: comment

Way 2

Très simple: utilisant méthode substring

string s = File.ReadAllText(FilePath); 
string r = s.Substring(6,3); 
MessageBox.Show(r); 

Bonne chance;