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
parC:\Documents and settings\Moi\Mes documents\TFE\MYTEXTE.txt
C:\DOCUME~1\Moi\MESDOC~1\TFE\MYTEXTE.txt
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]








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 ...
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 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.
Partager