|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 4 ![]() |
Bonjour,
Récemment je me suis intéressé à la manipulation de fichiers textes avec le pascal, mais je rencontre des difficultés. J'aimerais aller piocher des informations dans un fichier texte, et en remplacer. Pour simplifier le problème, le fichier texte (en réalité un dat) sera le suivant : Et l'objectif sera de faire un programme qui parcours le fichier texte en remplaçant les 1 par des 2. On devrait donc obtenir à la fin : J'écris donc le programme suivant : Code :
En fait, mon but final serait d'avoir une fonction "lireLigne(F:text ; n:integer): string;" qui renvoie la chaine de caractères de la ligne n du fichier F, et une procédure "remplacerLigne(F:text ; n:integer ; S:string);" qui supprime la ligne n du fichier F pour mettre à la place la chaine de caractères S. Merci d'avance... |
||
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 424 ![]() |
Je t'ai fait un petit programme explicatif à partir du tien pour que tu vois bien les étapes (tu peux ensuite virer les "writeln" et les "readln" qui ne sont là que comme "points d'arrêt".
Code :
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
||
|
|
20
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 4 ![]() |
Erm, ce programme lit en effet ce qu'il y a dans le texte, mais en ouvrant le fichier après le passage du programme, rien n'a changé
J'ai l'impression qu'il plante lors de la réécriture... Merci pour la réponse, je vois comment piocher des informations dans le texte maintenant. Par contre pour en écrire, le problème n'est toujours pas résolu... |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
Un conseil, si tu ne souhaite pas obligatoirement que ton utilisateur puisse ouvrir ton fichier avec le bloc-not, tu peux utiliser les fichiers typés.
par exemple. ça simplifie vachement la vie. |
|
|
11
|
|
|
#5 | |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 424 ![]() |
Citation:
Bonsoir, Voici le contenu du fichier test.dat avant l'utilisation du programme que j'ai donné : Et voici le contenu de même fichier après l'utilisation de mon programme : Les "1" ont bien été remplacés par des "2" comme tu l'as demandé. Explique-moi ce qui ne va pas car je ne comprends pas.
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
|
00
|
|
|
#6 | |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 424 ![]() |
Citation:
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
Je lui dis juste que les fichiers typée sont plus simple à utiliser que les fichiers textes. Comme il dit que ce sont des .DAT, c'est pour stocker des données. Il n'a peut être pas envie que tout le monde puisse ouvrir ce fichier avec son éditeur de texte préféré. Peut-être qu'il utilise les fichiers textes en dépit car il ne connaît pas les fichiers typés (comme moi au début). Bref peut être que ça l'aidera, peut être pas, mais étant donnée qu'un message ne coûte rien, ça vaut le coup d'essayer non ?
|
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 424 ![]() |
Ah, OK.
J'avais pensé que tu lui suggérais qu'en changeant le type de ses variables il allait résoudre son problème (que je ne comprends toujours pas d'ailleurs puisque le programme que je lui ai fourni fonctionne parfaitement sur mon PC).
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
c'est parce qu'il fonctionnait, que je n'ai pas eu besoins de l'aider à le résoudre
|
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 4 ![]() |
Citation:
J'ai l'impression qu'il plante après avoir dit "réouverture en écriture" : il affiche des caractères bizarres une fraction de secondes, et se ferme |
|
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 424 ![]() |
J'utilise FreePascal et windows XP mais je en vois pas en quoi cela peut jouer. En revanche il y a peut-être un problème de chemin. Il faut essayer de mettre le programme et le fichier dans le même répertoire (en cas d'utilisation de Turbo Pascal je crois me souvenir qu'il ne faut pas de nom de répertoire supérieur à 8 lettres, limitation héritée de DOS ou de signes autres que des lettres et des chiffres mais c'est à vérifier).
Mon programme fonctionne forcément donc il y a un autre problème peut-être un pb de chemin relatif ou quelque chose de ce type.
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
00
|
|
|
#12 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2010 Messages : 13 ![]() |
voici une solution avec les fichiers textes:
Code :
Code :
|
||||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 4 ![]() |
Merci.
Mon compilateur m'indique qu'il ne connait pas "clrscr;" mais je vais faire sans, je suppose que c'est juste pour nettoyer l'écran. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com