IAML_Coding
Messages postés3Date d'inscriptiondimanche 18 février 2018StatutMembreDernière intervention18 février 2018
-
Modifié le 18 févr. 2018 à 09:12
IAML_Coding
Messages postés3Date d'inscriptiondimanche 18 février 2018StatutMembreDernière intervention18 février 2018
-
18 févr. 2018 à 15:18
Bonjour, j'ai besoin d'aide s'il vous plaît, il n'affiche pas le resultat.. j'ai rencontré une erreur de compilation de ma code, mais cette erreur c'est une ( runtime error 3 )
Correspond : ----> PATH NOT FOUND !
Mais le chemin est totalement vrai !!! :(
Runtime error 3 at $00401672 $00401672 $0040185A $00407261
------------------ (program exited with code: 3)
-- ÉNONCÉS :
Etant donné un fichier de texte contenant un ensemble de lignes. Il est demandé de chercher
pour chaque ligne, l’existence ou non d’un mot donné et d’afficher suivant le cas l'un des
messages suivants :
Le mot (mot) existe dans ligne (i) ou le mot (mot) n’existe pas dans ligne (i)
PROGRAM ex1 ;
USES WinCrt ;
VAR ft : text ;
mot : string ;
i : integer ;
FUNCTION CHERCHE(VAR ft : text ; ch : STRING) : BOOLEAN ;
VAR p : integer ;
mot2, ligne : string ;
OK : Boolean ;
BEGIN
Assign(ft,'C:\Users\mongi\Desktop\Enoncés (training pascal)\paragraphe.txt') ;
Reset(ft) ;
OK := false ;
WHILE NOT(OK) AND NOT eof(ft) DO
BEGIN
Readln(ft,Ligne) ;
p := pos(' ',Ligne) ;
mot2 := copy(Ligne, 1, p-1) ;
Delete(Ligne, 1, p+1) ;
OK := (ch = mot2) ;
END;
CHERCHE := OK ;
END;
{-------------------------------------------------------------}
FUNCTION verif_mot( ch : string) : boolean ;
VAR OK : boolean;
k : integer;
BEGIN
OK := FALSE ;
FOR k := 1 TO length(ch) DO
OK := ch[k] in ['A'..'Z' , 'a'..'z'] ;
VERIF_MOT := OK ;
END;
{-------------------------------------------------------------}
BEGIN
REPEAT
Writeln('Tapez un mot : ') ;
Readln(mot) ;
UNTIL VERIF_MOT(mot) = TRUE ;
i := 0;
IF CHERCHE(ft,mot) THEN
BEGIN
i := i+1 ;
Writeln('Le mot ',mot,' existe dans ligne ',i )
END
ELSE
Writeln('Le mot ',mot,' n’existe pas dans ce fichier !! ') ;
END.
KX
Messages postés16747Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 9 juillet 2024127 18 févr. 2018 à 09:21
Bonjour,
"une erreur de compilation de ma code, mais cette erreur c'est une ( runtime error 3 )" Si c'est une erreur de compilation ce n'est pas une erreur de runtime ! Ou alors c'est ton compilateur qui a planté, indépendamment du code qu'il compile...
En partant de l'hypothèse que c'est effectivement une erreur d'exécution lié à ton nom de fichier, essayes ceci :
renommes ton fichier, en enlevant l'accent 'é' de 'Enoncés'
remplaces les \ par des /
IAML_Coding
Messages postés3Date d'inscriptiondimanche 18 février 2018StatutMembreDernière intervention18 février 2018 Modifié le 18 févr. 2018 à 16:40
Merci beaucoup pour votre aide.. D'après quelques modification le problème est résolu et mon code est marche bien maintenant ! :)
PROGRAM ex1 ;
USES WinCrt ;
VAR ft : text ;
mot : string ;
{-------------------------------------------------------------}
PROCEDURE affiche(VAR ft: text ; mot : string) ;
VAR i : integer ;
Ligne : string ;
BEGIN
Assign(ft,'C:\Users\mongi\Desktop\Enonces (training pascal)\paragraphe.txt') ;
Reset(ft) ;
i := 0;
WHILE NOT eof(ft) DO
BEGIN
Readln(ft,Ligne) ;
i := i+1 ;
IF POS(mot,Ligne)<>0 THEN
Writeln('Le mot ',mot,' existe dans ligne ',i )
ELSE Writeln('Le mot ',mot,' n’existe pas dans ce fichier !! ') ;
END;
END;
{-------------------------------------------------------------}
FUNCTION verif_mot( ch : string) : boolean ;
VAR OK : boolean;
k : integer;
BEGIN
OK := FALSE ;
FOR k := 1 TO length(ch) DO
BEGIN
OK := ch[k] in ['A'..'Z' , 'a'..'z'] ;
END;
VERIF_MOT := OK ;
END;
{-------------------------------------------------------------}
BEGIN
REPEAT
Writeln('Tapez un mot : ') ;
Readln(mot) ;
UNTIL VERIF_MOT(mot) = TRUE ;
AFFICHE(ft,mot) ;
END.
denisbertin
Messages postés245Date d'inscriptionlundi 22 avril 2013StatutMembreDernière intervention13 mai 20231 Modifié le 18 févr. 2018 à 11:42
Une petite modification, en effet comme tu procède tu ne trouveras qu'une seule occurrence du mot recherché. et non pas une suite de ligne qui devrait être affichées. la variable i sera soit égale à zéro ou à un mais jamais deux.
Whismeril
Messages postés19102Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention25 juillet 2024660 18 févr. 2018 à 12:00
Bonjour, je me suis permis de déplacer ton message, en effet il me semble que ça n'était pas adressé à KX....
IAML_Coding
Messages postés3Date d'inscriptiondimanche 18 février 2018StatutMembreDernière intervention18 février 2018 18 févr. 2018 à 15:18
Modifié le 18 févr. 2018 à 16:40