Bonjour à tous... voila après maints et maints essais, je me vois dans l'obligation de venir sur mon gentil forum informatique vous exposer mon problème... Effectivement, je dois copier le contenu d'un fichier texte dans un tableau de strings... Je voudrais qu'à chaque mot contenu dans le fichier soit allouée une case... Je vous entends déjà dire d'ici que c'est facile... mais pour un apprenti en programmation de 16 ans c'est déjà assez compliqué... Voici donc mon code, le problème est qu'il ne lit pas le dernier mot du fichier et donc ne lui alloue aucune case... J'ai aussi inclus un "write" qui permet de voir ce que contient vraiment le fichier... :
Ca c'est pour le premier programme qui copie le fichier en un tableau de strings... Et voici mon deuxième code qui, lui, copie le contenu d'un fichier de texte, dans un tableau de records à 3 champs (un champ de mot : string, un champ de position de mot (pour savoir sa place dans la ligne) et un champ de numéro de ligne pour savoir à quelle ligne il est dans le texte ) et là le problème est plus ou moins similaire... Disons que j'aimeraiq savoir ce qui cloche... en sachant qu'il faut absolument que cela m'affiche le mot, sa position dans la ligne et le numéro de sa ligne... d'où l'usage de 2 compteurs, un qui s'incrémente avec le eoln (end of line) pour savoir quand on passe à une autre ligne... (mais mon end of line ne fonctionne pas)... Enfin le voici, votre aide sera précieuse et me permettrait d'avancer... :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 program test; uses sysutils,crt; const EMPLACEMENTFICHIER='C:\programmation\fichier.txt'; type recordrecherche = record mot : string; numligne : integer; numposmot : integer; end; tableau1 = array[1..1000000] of string; tableau2 = array[1..1000000] of recordrecherche; var car:char; temporaire:string; fichier: text; tableaurecherche:tableau1; tableaurecit:tableau2; compteurmot:integer; ok:boolean; begin assign (fichier, EMPLACEMENTFICHIER); reset(fichier) ; compteurmot:=1; while ( not(eof(fichier) ) ) do begin read(fichier, car); while (car <> ' ' ) do begin temporaire:= (temporaire+car); read (fichier, car); end; tableaurecherche[compteurmot]:=(temporaire); temporaire:=(''); writeln(tableaurecherche[compteurmot]); //pour verifier que le tableau est initialisé// compteurmot:=(compteurmot+1); end; close(fichier); end.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 program test; uses sysutils,crt; const EMPLACEMENTFICHIER='C:\Documents and Settings\Gilles\Mes documents\Mes fichiers reçus\fichier.txt'; type recordrecherche = record mot : string; numligne : integer; numposmot : integer; end; tableau1 = array[1..1000000] of string; tableau2 = array[1..1000000] of recordrecherche; var car:char; temporaire:string; fichier: text; tableaurecherche:tableau1; tableaurecit:tableau2; compteurmot:integer; compteurligne,avancementtableau:integer; begin assign (fichier, EMPLACEMENTFICHIER); reset(fichier) ; compteurmot:=1; compteurligne:=1; avancementtableau:=1; while ( not(eof(fichier) ) ) do begin read(fichier, car); while (car <> ' ' ) do begin temporaire:= (temporaire+car); read (fichier, car); end; if (eoln(fichier)) then begin compteurligne:=(compteurligne+1); compteurmot:=1; end; tableaurecit[avancementtableau].mot:=(temporaire); tableaurecit[avancementtableau].numligne:=(compteurligne); tableaurecit[avancementtableau].numposmot:=(compteurmot); temporaire:=(''); write(tableaurecit[avancementtableau].mot); write(' ');write(tableaurecit[avancementtableau].numposmot); write(' ');writeln(tableaurecit[avancementtableau].numligne); compteurmot:=(compteurmot+1); avancementtableau:=(avancementtableau+1); end; close(fichier); end.
Merci à tous pour votre attention, au plaisir de vous lire, Julien.
Partager