Bonjour à vous :
J'ai developpé il y a quelques années un bout de code en "C" qui à la lecture des lignes d'un fichier retranscrit chaque ligne sur la base de la stucture "B" ci-dessous. avec la position de chaque champs dans la ligne. (Le but de ce petit programme etant de verifier la position et les valeurs de chaque elements d'une interface)

Je demarre maintenant au C# et je souhaite faire la meme chose .
Mon problème se situe au niveau du chargement des données dans la structure .
En "C" : La ligne de commande suivante remplie toute la structure "B"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
fgets((char *)&B,BUFSIZE,fich);
Mais en C# : les structures étant maintenant des "class" comportants différents objets , je ne sait pas s'il est possible d'affecter une chaine de caractère (une ligne du fichier) directement dans une structure (Au sens C)

La structure en langage C
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Description de la ligne
struct
     {
     char  clef1[1];         /* 1ere Clef                 */
     char  clef2[8];         /* 2ème Clef                 */
     char  info1[10];        /* Information 1             */
     char  info2[12];        /* Information 2             */
     char  info3[8];         /* Information 3             */
     struct
          {                  /* Tableau de 10 Positions   */
          char  dpos[2];
          } SCH[10];
     char  Z_comun[150];     /* Zone Commune              */
     } B ;


Exemple valant mieux que de grand discours :
Le fichier (2 lignes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
11234567812345678901234567890121234567801 B02 C03 D04 E05 FZOne Commune                                                            
AClef2   Info 1    Informatio 2Info 3   1 2 3 4 5 6 7 8 910Ceci est commun
Le resultat
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
26
27
28
29
30
31
32
33
34
35
Pos=[   1]B.clef1=(1) 
Pos=[   2]B.clef2=(12345678) 
Pos=[  10]B.info1=(1234567890) 
Pos=[  20]B.info2=(123456789012) 
Pos=[  32]B.info3=(12345678) 
Pos=[  40]B.SCH[i].dpos=(01) 
Pos=[  42]B.SCH[i].dpos=( B) 
Pos=[  44]B.SCH[i].dpos=(02) 
Pos=[  46]B.SCH[i].dpos=( C) 
Pos=[  48]B.SCH[i].dpos=(03) 
Pos=[  50]B.SCH[i].dpos=( D) 
Pos=[  52]B.SCH[i].dpos=(04) 
Pos=[  54]B.SCH[i].dpos=( E) 
Pos=[  56]B.SCH[i].dpos=(05) 
Pos=[  58]B.SCH[i].dpos=( F) 
Pos=[  60]B.Z_Commun=(ZOne Commune                                    ) 
==================================
 
Pos=[   1]B.clef1=(A) 
Pos=[   2]B.clef2=(Clef2   ) 
Pos=[  10]B.info1=(Info 1    ) 
Pos=[  20]B.info2=(Informatio 2) 
Pos=[  32]B.info3=(Info 3  ) 
Pos=[  40]B.SCH[i].dpos=( 1) 
Pos=[  42]B.SCH[i].dpos=( 2) 
Pos=[  44]B.SCH[i].dpos=( 3) 
Pos=[  46]B.SCH[i].dpos=( 4) 
Pos=[  48]B.SCH[i].dpos=( 5) 
Pos=[  50]B.SCH[i].dpos=( 6) 
Pos=[  52]B.SCH[i].dpos=( 7) 
Pos=[  54]B.SCH[i].dpos=( 8) 
Pos=[  56]B.SCH[i].dpos=( 9) 
Pos=[  58]B.SCH[i].dpos=(10) 
Pos=[  60]B.Z_Commun=(Ceci est commun                                 ) 
==================================
La question est :
est il possible en C# de découper une chaine de caractères en la copiant comm en "C" dans une structure . (Ou y a t'il d'autre methode le permettant)
(La notion de contiguité des éléments d'une structure n'existe pas en C# ... il me semble....)


Merci de votre aide
@argoet