 |
|
 |
|
| |
S'enregistrer
Rechercher FAQ
Connexion
| Message |
Auteur |
Posté le: 29 10 2002 20:40 Sujet du message: code montrez au tableau |
|
|
code de test de lecture
Utilisez l'unité Ufichier pour lire un fichier texte
dans l'application PrLectFicText.dpr
| Code: | Procedure Tform1.LectureClick(sender:tObjet);
var f:textfile;
s:string;
success:byte;
begin
if not OpenDialog1.Execute Then Exit;
listBox1.clear;
ouvertureFichierEnLecture(f,success);
while not Eof(f)do
begin
readln(f,s);
listbox1.Item.Add(s)
end
FermerFichier(f)
end; |
|
|
Ice_man33 Posteur habitué

Inscrit le: 19 Sep 2002 Messages: 126 Localisation: Montréal
|
|
Revenir en haut |
|
|
|
 |
Posté le: 29 10 2002 20:54 Sujet du message: |
|
|
Le code de UFichier (il faut finir le "FermerFichier")
| Code: | unit UFichier;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
procedure OuvertureFichierEnLecture(var f:TextFile; var Success: Byte);
procedure OuvertureFichierEnEcriture(var f:TextFile; var Success: Byte);
procedure OuvertureFichierEnAppend(var f:TextFile; var Success: Byte);
procedure FermerFichier (var f:TextFile);
implementation
procedure OuvertureFichierEnLecture(var f:TextFile; var Success: Byte);
var S,Nomf:string;
CodeErreur:Integer;
begin
s:=InputBox('Nom fichier','Entrez le nom du fichier','o');
nomf:=s;
assignfile(f,nomf);
{$I-}
reset(f);
codeerreur:=ioresult;
{$I-}
if codeerreur<>0 then
case codeerreur of
1:showmessage('erreur # '+inttostr(CodeErreur)+' out of memory');
2:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur manquant');
3:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur inconnu');
4:showmessage('erreur # '+inttostr(CodeErreur)+' Identidficateur en double');
5:showmessage('erreur # '+inttostr(CodeErreur)+' Syntaxe erreur');
10:showmessage('erreur # '+inttostr(CodeErreur)+' Fin Fichier non attendu');
15:showmessage('erreur # '+inttostr(CodeErreur)+' Fichier non trouvé');
16:showmessage('erreur # '+inttostr(CodeErreur)+' Disque plein');
else showmessage('erreur # '+inttostr(CodeErreur)+' Erreur');
end
else
begin
showmessage ('Fichier ouvert en lecure');
end;
end;
procedure OuvertureFichierEnEcriture(var f:TextFile; var Success: Byte);
var S,Nomf:string;
CodeErreur:Integer;
begin
s:=InputBox('Nom fichier','Entrez le nom du fichier','o');
nomf:=s;
assignfile(f,nomf);
{$I-}
reset(f);
codeerreur:=ioresult;
{$I+}
if codeerreur<>0 then
case codeerreur of
1:showmessage('erreur # '+inttostr(CodeErreur)+' out of memory');
2:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur manquant');
3:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur inconnu');
4:showmessage('erreur # '+inttostr(CodeErreur)+' Identidficateur en double');
5:showmessage('erreur # '+inttostr(CodeErreur)+' Syntaxe erreur');
10:showmessage('erreur # '+inttostr(CodeErreur)+' Fin Fichier non attendu');
15:showmessage('erreur # '+inttostr(CodeErreur)+' Fichier non trouvé');
16:showmessage('erreur # '+inttostr(CodeErreur)+' Disque plein');
else showmessage('erreur # '+inttostr(CodeErreur)+' Erreur');
end
else
begin
showmessage ('Fichier ouvert en lecure');
end;
end;
procedure OuvertureFichierEnAppend(var f:TextFile; var Success: Byte);
var S,Nomf:string;
CodeErreur:Integer;
begin
s:=InputBox('Nom fichier','Entrez le nom du fichier','o');
nomf:=s;
assignfile(f,nomf);
{$I-}
reset(f);
{$I-}
codeerreur:=ioresult;
if codeerreur<>0 then
case codeerreur of
1:showmessage('erreur # '+inttostr(CodeErreur)+' out of memory');
2:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur manquant');
3:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur inconnu');
4:showmessage('erreur # '+inttostr(CodeErreur)+' Identidficateur en double');
5:showmessage('erreur # '+inttostr(CodeErreur)+' Syntaxe erreur');
10:showmessage('erreur # '+inttostr(CodeErreur)+' Fin Fichier non attendu');
15:showmessage('erreur # '+inttostr(CodeErreur)+' Fichier non trouvé');
16:showmessage('erreur # '+inttostr(CodeErreur)+' Disque plein');
else showmessage('erreur # '+inttostr(CodeErreur)+' Erreur');
end
else
begin
showmessage ('Fichier ouvert en lecure');
end;
end;
procedure FermerFichier (var f:TextFile);
begin
end;
end.
|
Dernière édition par Kaizen le 30 10 2002 18:56; édité 1 fois |
|
Kaizen Webmaster

Inscrit le: 07 Mar 2002 Messages: 2253 Localisation: Québec, France et ailleurs...
|
|
Revenir en haut |
 |
Posté le: 30 10 2002 13:09 Sujet du message: |
|
|
C juste une proposition pour le code montré par kaizen.
D'abord on dirai qu'il ya un erreur : dans tes 3 fonctions s'il n'y a pas de messages d'erreur le messages : "Fichier ouvert en lecure" est affiché...
Il semblerai que tes 3 fonctions fassent apeu pres la meme chose, sauf que le type d'ouverture est different (lecture,ecriture,append).
Pour limiter la taille deton code tu pourrai ajouter un argument dans la focntion qui te permet de savoire comment le fichier doit etre ouvert.
Ensuitte tu teste cette argument si une action doit etre faite en fonction du type d'ouverture du fichier.
Exemple : pour le messages :
| Code: | procedure OuvertureFichier(var f:TextFile; var Success: Byte; [i]var TypeOuverture:string[/i]);
var Success: Byte);
var S,Nomf:string;
CodeErreur:Integer;
begin
s:=InputBox('Nom fichier','Entrez le nom du fichier','o');
nomf:=s;
assignfile(f,nomf);
{$I-}
reset(f);
codeerreur:=ioresult;
{$I-}
if codeerreur<>0 then
case codeerreur of
1:showmessage('erreur # '+inttostr(CodeErreur)+' out of memory');
2:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur manquant');
3:showmessage('erreur # '+inttostr(CodeErreur)+' Identificateur inconnu');
4:showmessage('erreur # '+inttostr(CodeErreur)+' Identidficateur en double');
5:showmessage('erreur # '+inttostr(CodeErreur)+' Syntaxe erreur');
10:showmessage('erreur # '+inttostr(CodeErreur)+' Fin Fichier non attendu');
15:showmessage('erreur # '+inttostr(CodeErreur)+' Fichier non trouvé');
16:showmessage('erreur # '+inttostr(CodeErreur)+' Disque plein');
else showmessage('erreur # '+inttostr(CodeErreur)+' Erreur');
end
else
begin
showmessage ('Fichier ouvert en [i]afficher TypeOuverture'[/i]);
end;
end; |
(recherche la balise [i] pour voire ce que G modifié).
rien ne t'empeche dans ton code de faire des testes sur la variable pour savoire si la fonctio nest utilisé pour un ficheir qui doit etre lut,ecrit ou "ppend".
Cela te permetra de diviser par au moin 2 la taille de ton code....
Djer13 |
|
Djer13 Équipe Teamatic

Inscrit le: 07 Mar 2002 Messages: 693 Localisation: Chambéry
|
|
Revenir en haut |
 |
Posté le: 30 10 2002 18:52 Sujet du message: |
|
|
| Djer13 a écrit: | | D'abord on dirai qu'il ya un erreur : dans tes 3 fonctions s'il n'y a pas de messages d'erreur le messages : "Fichier ouvert en lecure" est affiché... | NON, la partie suivante est la pour ça... | Code: | {$I-}
reset(f);
codeerreur:=ioresult;
{$I-}
if codeerreur<>0 then
case codeerreur of
1:showmessage('erreur # '+inttostr(CodeErreur)+' out of memory');
... |
| Djer13 a écrit: | | Il semblerai que tes 3 fonctions fassent apeu pres la meme chose, sauf que le type d'ouverture est different (lecture,ecriture,append). | Entierement d'accord mais bon, c'est le code du prof (j'aurais jamais fais un truc pareil) :
| Citation: | Regle 1: Le prof s toujours raison
Regle 2: Si le prof a tors, voir la regle 1 |
|
|
Kaizen Webmaster

Inscrit le: 07 Mar 2002 Messages: 2253 Localisation: Québec, France et ailleurs...
|
|
Revenir en haut |
 |
Posté le: 31 10 2002 14:27 Sujet du message: |
|
|
pour "l'erreur" je pense que tu n'as pas compris ce que je voulais dire.
Quand il n'y a pas d'erreur (donc pas de message d'erreur) toutes la partie de "CASE" est ignoré pour passer au "else" en bas qui affiche un message qui confirme l'ouverture.
Dans les 3 fonctions le message est EXACTEMENT le meme alors que seul la 1 erre fonction ouvre le ficheri en lecture les autre ouvrent en ecriture ou "append".....
Djer13 |
|
Invité
|
|
Revenir en haut |
 |
Posté le: 31 10 2002 15:16 Sujet du message: |
|
|
| Anonymous a écrit: | pour "l'erreur" je pense que tu n'as pas compris ce que je voulais dire.
Quand il n'y a pas d'erreur (donc pas de message d'erreur) toutes la partie de "CASE" est ignoré pour passer au "else" en bas qui affiche un message qui confirme l'ouverture. |
Bah oui, c'est le but... |
|
Kaizen Webmaster

Inscrit le: 07 Mar 2002 Messages: 2253 Localisation: Québec, France et ailleurs...
|
|
Revenir en haut |
 |
|
 |
|
Toutes les heures sont au format GMT
|
| Page 1 sur 1 |
|
|
| |
|
|
|