C:\Documents and Settings\Moi\Mes documents\TFE\MYTEXTE.txt
C:\Documents and Settings\Moi\Mes documents\TFE\2.EXE
Version imprimable
Ah oui là aparemment le reste du programme s'execute donc je suppose que le fichier a été ouvert par contre en mettent writeln à la fin de chaque étap pour m'indiquer certaine chose par exemple writeln('dernière ligne traitée') je remarque que la boucle se fait à l'infini. Je vais donc encore travaillé mon codage.
Bonjour,
Tu peux utiliser la version 8.3 des noms de répertoires et de fichiers, sans devoir tout déplacer sur ton disque. ;)
Par exemple, tu peux remplacer
parCitation:
C:\Documents and settings\Moi\Mes documents\TFE\MYTEXTE.txt
Citation:
C:\DOCUME~1\Moi\MESDOC~1\TFE\MYTEXTE.txt
Sinon, il est possible de récupérer le chemin aboslu du programme avec la fonction paramstr(0).
Puis voir si c'est un monde Microsoft ou Linux (backslash ou slash).
Puis concaténer le chemin absolu du programme moins le nom du programme avec nom du fichier ... :aie:
Code:
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 program EssaiSurString; var str : string; str2 : string; Datas : Text; NomFichier : string; // Nom du fichier a lire k : Integer; choix : cardinal; begin writeln('Monde Windows tapez 0;'); writeln('Monde Linux, Unix, Mac, tapez 1'); readln (choix); writeln('Indiquez le nom du fichier contenant les donnees qu''il faut ouvrir : '); readln(NomFichier); writeLn (ParamStr (0)); //Affiche le chemin absolu du programme; str := ParamStr (0); k := length(str); //k est la longueur de la chaine effective case choix of 0: begin while str[k] <> '\' do // Tant que nous ne trouvons pas un backslash (windows) depuis la fin de position begin dec(k); end; {/Elihw} end; 1: begin while str[k] <> '/' do // Tant que nous ne trouvons pas un slash (Unix, Linux et Mac) depuis la fin de position begin dec(k); end; {/Elihw} end; end; {/Esac} str2 := str; delete(str,k+1,(length(str)-k)); writeln(str) ; str := str+NomFichier; Assign(Datas,str); reset(Datas); If IOresult <> 0 then // Si l'output répond pas trouver fichier, alors begin writeln('Le fichier est inexistant ou le nom est non valide'); halt; end; {/fi} writeln(str); readln(); while not eof(Datas) do begin readln(Datas,str); writeln(str); end; {/Elihw} close(Datas); end.