LECTURE ET STOCKAGE DE FICHIER TEXTE DANS UNE VARIABLE
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
23 nov. 2004 à 23:06
MB32
Messages postés16Date d'inscriptionvendredi 11 mai 2012StatutMembreDernière intervention 4 juillet 2013
-
11 mai 2012 à 21:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
MB32
Messages postés16Date d'inscriptionvendredi 11 mai 2012StatutMembreDernière intervention 4 juillet 2013 11 mai 2012 à 21:22
J'oubliais mais les connaisseurs auront compris certainement que le compilateur donne des erreurs sur la ligne de Readln.
MB32
Messages postés16Date d'inscriptionvendredi 11 mai 2012StatutMembreDernière intervention 4 juillet 2013 11 mai 2012 à 21:20
Mais pourquoi ce code ne compile pas chez moi (application console, RAD XE2) ?
var F1, F2 : file;
s: string;
begin
try
Assign(F1, 'd:\Fichiers DIM\HJ_2010_11');
Reset(F1);
Assign(F2, 'd:\Fichiers DIM\HJ_2010_11_sortie');
Rewrite(F2);
while not Eof(F1) do begin
Readln(F1, s );
end;
Close(F1);
Close(F2);
{ TODO -oUser -cConsole Main : Insérer du code ici }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
(compilation : procedure, untyped pointer or untyped parameter and string)
Merci de votre aide, je me sens sérieusement nul, l'aide de XE2 ne me donne pas la syntaxe des arguments de taille multiple, les bouquins que j'ai achetés ne donnent pas d'exemple console, et mes derniers essais avec Delphi ou IntraBuilder ne connaissaient pas tous ces nouveaux types de chaînes.
Merci de me répondre aussi sur mon adresse mail.
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 2 déc. 2004 à 10:01
Oups
j'ai un probléme dans mon code
j'ai passé des heure à le cherché .....
en fin c'est dû à DelphiProg
hihiihihih
Le format généré des fichier contient des fois des erreurs dû à un chr(13) qui manque :
try
while not Eof(F) do
begin
ReadLn(F, S1);
S := S + S1 + chr(13); // -----> §!!!!!!!?????
end;
finally
CloseFile(F);
end;
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 1 déc. 2004 à 17:34
mais arrête eest-ce que je suis aussi stupid ?
Je travail depuis 2.5 ans
je un prog
????????!!!!!!!!!
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 1 déc. 2004 à 00:47
Ouais, Delphiprog, une fois compris le concept, un fonction retourne un résultat (ce qui est la moindres des choses), mais on peut aussi, à l'intérieur de cette fonction, modifier une variable passée en paramètre... ce qui ouvre quelques perspectives... ;)
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 25 nov. 2004 à 08:34
ah bon je ne le savait pas ça
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 24 nov. 2004 à 19:42
A JobTunisieYasser :
La différence entre une fonction et une procédure est la suivante : une fonction renvoie nécessairement un résultat alors qu'une procédure ne renvoie rien.
Mais, en passant des paramètres par adresse comme :
procedure StringFromFile(const FileName: TFileName; var S: string);
où le paramètre S est déclaré Var, toute modification de ce paramètre à l'intérieur de la procédure sera alors visible par l'appelant.
Est-ce plus clair ?
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 24 nov. 2004 à 14:18
Merci beaucoup
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 24 nov. 2004 à 11:31
Ok Ok, si j' ai bien compris, ce code survient à la suite de ta demande d' aide à ce sujet ...
Aucun problème, mais utilise l' amélioration de DelphiProg, et, ma fois, si ma fonction peut aider aussi ...
A+
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 24 nov. 2004 à 11:18
le code a était posé dans lee but de me donner une réponse et non pas dans le but d'avoir la premiére place dans un ....
parsuite le 10/10 est ma seule façon de le remercier pour ses effort.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 24 nov. 2004 à 11:08
Non, la note de 1/10 est peu être exagérée, moi j' ai donné 4/10 parce que ce code existe dans l' aide de Delphi et parce que ça remonterai le 1/10. Mais si tu donnes 10/10, ça fait une trop bonne moyenne ...
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 24 nov. 2004 à 11:05
Au fait, DelphiProg te donne une amelioration:
Readln permet de lire toute la ligne alors que Read ne lit qu' un seul caractere. De plus, le Try Finally permet de s' assurer que le fichier sera fermé à la fin!!!
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 24 nov. 2004 à 11:01
qui vous a donné 1/10
hihihih
moi je t'es donné 10/10
et merci
merci pour toi aussi MAURICIO
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 24 nov. 2004 à 10:59
Voici une de mes fonctions qui fait le contraire: ecrire dans les fichiers texte !!!
var Ficheiro -> fichier
Texto -> texte à insérer à la fin
Limpar_Primeiro -> permet d' effacer ce qu' il y a dans le fichier avant d' inserer ...
Vazio -> bool = vide?
procedure FicheiroTexto_Append(Ficheiro: String; Texto: String; Limpar_Primeiro: Boolean);
var Fich : TextFile;
Vazio : Boolean;
begin
AssignFile(Fich, Ficheiro);
If (Not FileExists(Ficheiro)) Or (Limpar_Primeiro)
Then Begin
Rewrite(Fich);
Vazio := True;
End
Else Begin
Reset(Fich);
Vazio := Eof(Fich);
End;
Append(Fich);
If Not Vazio
Then Writeln(Fich, ''); // Nouvelle ligne ...
Write(Fich, Texto);
CloseFile(Fich);
end;
C' est une vieille fonction que j' ai faite il y a longtemps.
J' espère que ça va vous être utile.
jobtunisieyasser
Messages postés123Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention23 mars 2007 24 nov. 2004 à 09:01
de mon point de vue
excépté l'organisation du code
je ne voit pas la nuance delphiprog
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 23 nov. 2004 à 23:06
merci de remettre a jour le zip et de ne pas mettre d'accent pour les noms de fichiers, ils sont injoignables pour les *membres club*
11 mai 2012 à 21:22
11 mai 2012 à 21:20
var F1, F2 : file;
s: string;
begin
try
Assign(F1, 'd:\Fichiers DIM\HJ_2010_11');
Reset(F1);
Assign(F2, 'd:\Fichiers DIM\HJ_2010_11_sortie');
Rewrite(F2);
while not Eof(F1) do begin
Readln(F1, s );
end;
Close(F1);
Close(F2);
{ TODO -oUser -cConsole Main : Insérer du code ici }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
(compilation : procedure, untyped pointer or untyped parameter and string)
Merci de votre aide, je me sens sérieusement nul, l'aide de XE2 ne me donne pas la syntaxe des arguments de taille multiple, les bouquins que j'ai achetés ne donnent pas d'exemple console, et mes derniers essais avec Delphi ou IntraBuilder ne connaissaient pas tous ces nouveaux types de chaînes.
Merci de me répondre aussi sur mon adresse mail.
2 déc. 2004 à 10:01
j'ai un probléme dans mon code
j'ai passé des heure à le cherché .....
en fin c'est dû à DelphiProg
hihiihihih
Le format généré des fichier contient des fois des erreurs dû à un chr(13) qui manque :
try
while not Eof(F) do
begin
ReadLn(F, S1);
S := S + S1 + chr(13); // -----> §!!!!!!!?????
end;
finally
CloseFile(F);
end;
1 déc. 2004 à 17:34
Je travail depuis 2.5 ans
je un prog
????????!!!!!!!!!
1 déc. 2004 à 00:47
25 nov. 2004 à 08:34
24 nov. 2004 à 19:42
La différence entre une fonction et une procédure est la suivante : une fonction renvoie nécessairement un résultat alors qu'une procédure ne renvoie rien.
Mais, en passant des paramètres par adresse comme :
procedure StringFromFile(const FileName: TFileName; var S: string);
où le paramètre S est déclaré Var, toute modification de ce paramètre à l'intérieur de la procédure sera alors visible par l'appelant.
Est-ce plus clair ?
24 nov. 2004 à 14:18
24 nov. 2004 à 11:31
Aucun problème, mais utilise l' amélioration de DelphiProg, et, ma fois, si ma fonction peut aider aussi ...
A+
24 nov. 2004 à 11:18
parsuite le 10/10 est ma seule façon de le remercier pour ses effort.
24 nov. 2004 à 11:08
24 nov. 2004 à 11:05
Readln permet de lire toute la ligne alors que Read ne lit qu' un seul caractere. De plus, le Try Finally permet de s' assurer que le fichier sera fermé à la fin!!!
24 nov. 2004 à 11:01
hihihih
moi je t'es donné 10/10
et merci
merci pour toi aussi MAURICIO
24 nov. 2004 à 10:59
var Ficheiro -> fichier
Texto -> texte à insérer à la fin
Limpar_Primeiro -> permet d' effacer ce qu' il y a dans le fichier avant d' inserer ...
Vazio -> bool = vide?
procedure FicheiroTexto_Append(Ficheiro: String; Texto: String; Limpar_Primeiro: Boolean);
var Fich : TextFile;
Vazio : Boolean;
begin
AssignFile(Fich, Ficheiro);
If (Not FileExists(Ficheiro)) Or (Limpar_Primeiro)
Then Begin
Rewrite(Fich);
Vazio := True;
End
Else Begin
Reset(Fich);
Vazio := Eof(Fich);
End;
Append(Fich);
If Not Vazio
Then Writeln(Fich, ''); // Nouvelle ligne ...
Write(Fich, Texto);
CloseFile(Fich);
end;
C' est une vieille fonction que j' ai faite il y a longtemps.
J' espère que ça va vous être utile.
24 nov. 2004 à 09:01
excépté l'organisation du code
je ne voit pas la nuance delphiprog
23 nov. 2004 à 23:06