|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Probleme lecture/ecriture dans fichier. [ Archives / Fichier / Disque ] (Cybric)
Informations & options pour cette discussion
|
vendredi 4 juillet 2003 à 23:03:28 |
Probleme lecture/ecriture dans fichier.

Cybric
|
Bonsoir. Je débute avec DELPHI, donc novice. Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier. Quelqu'un peut m'aider ? Voici le code simplifié : -------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; Edit2: TEdit; procedure Button3Click(Sender: TObject); procedure FormActivate(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; Type Adr = record N,P : String[10]; End; var Form1: TForm1; F : File of Adr; Enreg : Adr; Table : Array[1..100] of adr; Ne : LongInt; NbEnr : Integer; I : Integer; implementation {$R *.dfm} procedure affiche(Enr : Integer); begin Form1.Edit1.Text:=Table[Enr].N; Form1.Edit2.text:=Table[Enr].P; end; Procedure enregistre; begin Table[NE].N:=Form1.Edit1.Text; Table[NE].P:=Form1.edit2.text; end; procedure TForm1.Button3Click(Sender: TObject); // Fermeture prog begin close; end; procedure TForm1.FormActivate(Sender: TObject); begin AssignFile(F,'C:\_Richard\Test.adr'); {$I-} Reset(F); {$I+} NE:=1; if IOResult=0 Then Begin Repeat Read(F,Enreg); Table[NE]:=Enreg; NE:=NE+1; Until Eof(F); NBEnr:=Ne-1 ; CloseFile(F); NE:=1; Affiche(NE); End Else Begin With Enreg Do Begin Table[1].N:=''; Table[1].P:=''; End; NBEnr:=1 End; end; end. ----------------- Merci d'avance pour votre aide ... PS : Quel est le meilleur moyen de progresser avec Delphi ? Cybric
|
|
|
|
samedi 5 juillet 2003 à 11:06:27 |
Re : Probleme lecture/ecriture dans fichier.

magicvinni
|
Je ne comprend pas commen tu met les valeurs dans ton fichier, il n'y a pas de procedure d'enregistrement? MagicVinni
------------------------------- Réponse au message : -------------------------------
> Bonsoir. > > Je débute avec DELPHI, donc novice. > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier. > Quelqu'un peut m'aider ? > Voici le code simplifié : > -------- > unit Unit1; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls; > > type > TForm1 = class(TForm) > Button1: TButton; > Button2: TButton; > Button3: TButton; > Edit1: TEdit; > Edit2: TEdit; > procedure Button3Click(Sender: TObject); > procedure FormActivate(Sender: TObject); > private > { Déclarations privées } > public > { Déclarations publiques } > end; > > Type > Adr = record > N,P : String[10]; > End; > > var > Form1: TForm1; > F : File of Adr; > Enreg : Adr; > Table : Array[1..100] of adr; > Ne : LongInt; > NbEnr : Integer; > I : Integer; > > implementation > > {$R *.dfm} > > procedure affiche(Enr : Integer); > begin > Form1.Edit1.Text:=Table[Enr].N; > Form1.Edit2.text:=Table[Enr].P; > end; > > Procedure enregistre; > begin > Table[NE].N:=Form1.Edit1.Text; > Table[NE].P:=Form1.edit2.text; > end; > > procedure TForm1.Button3Click(Sender: TObject); > // Fermeture prog > begin > close; > end; > > procedure TForm1.FormActivate(Sender: TObject); > begin > AssignFile(F,'C:\_Richard\Test.adr'); > {$I-} > Reset(F); > {$I+} > NE:=1; > if IOResult=0 Then > Begin > Repeat > Read(F,Enreg); > Table[NE]:=Enreg; > NE:=NE+1; > Until Eof(F); > NBEnr:=Ne-1 ; > CloseFile(F); > NE:=1; > Affiche(NE); > End > Else > Begin > With Enreg Do > Begin > Table[1].N:=''; > Table[1].P:=''; > End; > NBEnr:=1 > End; > end; > > end. > > ----------------- > Merci d'avance pour votre aide ... > > > PS : Quel est le meilleur moyen de progresser avec Delphi ? > > Cybric
|
|
|
|
samedi 5 juillet 2003 à 12:30:04 |
Re : Probleme lecture/ecriture dans fichier.

kanigou
|
Bon, franchement deja moi j'y comprend rien a ta source et puis je trouve que ca sert a rien de recopier tel quel la source d'un bouquin !!! Le truc c'est de la comprndre etape par etape. Moi ausis je commence en Delphi et ben le truc c'es de trouver un petit projet et de faire tout pour y arriver. Quand tu est bloquer, tu cherche sur le forum ou tu poste un message ...
ps: As-tu comrpis le code au moins ???
------------------------------- Réponse au message : -------------------------------
> Bonsoir. > > Je débute avec DELPHI, donc novice. > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier. > Quelqu'un peut m'aider ? > Voici le code simplifié : > -------- > unit Unit1; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls; > > type > TForm1 = class(TForm) > Button1: TButton; > Button2: TButton; > Button3: TButton; > Edit1: TEdit; > Edit2: TEdit; > procedure Button3Click(Sender: TObject); > procedure FormActivate(Sender: TObject); > private > { Déclarations privées } > public > { Déclarations publiques } > end; > > Type > Adr = record > N,P : String[10]; > End; > > var > Form1: TForm1; > F : File of Adr; > Enreg : Adr; > Table : Array[1..100] of adr; > Ne : LongInt; > NbEnr : Integer; > I : Integer; > > implementation > > {$R *.dfm} > > procedure affiche(Enr : Integer); > begin > Form1.Edit1.Text:=Table[Enr].N; > Form1.Edit2.text:=Table[Enr].P; > end; > > Procedure enregistre; > begin > Table[NE].N:=Form1.Edit1.Text; > Table[NE].P:=Form1.edit2.text; > end; > > procedure TForm1.Button3Click(Sender: TObject); > // Fermeture prog > begin > close; > end; > > procedure TForm1.FormActivate(Sender: TObject); > begin > AssignFile(F,'C:\_Richard\Test.adr'); > {$I-} > Reset(F); > {$I+} > NE:=1; > if IOResult=0 Then > Begin > Repeat > Read(F,Enreg); > Table[NE]:=Enreg; > NE:=NE+1; > Until Eof(F); > NBEnr:=Ne-1 ; > CloseFile(F); > NE:=1; > Affiche(NE); > End > Else > Begin > With Enreg Do > Begin > Table[1].N:=''; > Table[1].P:=''; > End; > NBEnr:=1 > End; > end; > > end. > > ----------------- > Merci d'avance pour votre aide ... > > > PS : Quel est le meilleur moyen de progresser avec Delphi ? > > Cybric
|
|
|
|
dimanche 6 juillet 2003 à 12:55:46 |
Re : Probleme lecture/ecriture dans fichier.

Cybric
|
J'ai compris le code, mais je ne comprend pas pourquoi il ne fonctionne pas.
Cybric
------------------------------- Réponse au message : -------------------------------
> Bon, franchement deja moi j'y comprend rien a ta source et puis je trouve que ca sert a rien de recopier tel quel la source d'un bouquin !!! Le truc c'est de la comprndre etape par etape. Moi ausis je commence en Delphi et ben le truc c'es de trouver un petit projet et de faire tout pour y arriver. Quand tu est bloquer, tu cherche sur le forum ou tu poste un message ... > > > ps: As-tu comrpis le code au moins ??? > > ------------------------------- > Réponse au message : > ------------------------------- >
|
|
|
|
dimanche 6 juillet 2003 à 13:06:16 |
Re : Probleme lecture/ecriture dans fichier.

Cybric
|
Le fichier, je lui ai mis 2 lignes de 20 caracteres manuellement avec NotePad. J'obtient dans les Tedit beaucoup plus de 10 caracteres chacun, avec des signes en noir correspondant au retour de ligne.
Faut-il ne pas remplir manuellement le fichier et avoir tout le temps une procedure d'enregistrement ? Ou bien il y a une erreur dans la déclaration du "Record" ou dans la lecture des lignes du fichier.
Merci par ta réponse, j'y ai passé 5 heures l'autre soir sans résultat.
Cybric
------------------------------- Réponse au message : -------------------------------
> Je ne comprend pas commen tu met les valeurs dans ton fichier, il n'y a pas de procedure d'enregistrement? > MagicVinni > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Bonsoir. > > > > Je débute avec DELPHI, donc novice. > > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier
|
|
|
|
dimanche 6 juillet 2003 à 22:14:56 |
Re : Probleme lecture/ecriture dans fichier.

magicvinni
|
Je penses que ca vient de là, car tu utilises un fichier contenant des enregistrements (record), alors que quand tu edite le texte avec le bloc note, c'est un fichier texte que tu manipule.
Cree un fichier adr comme ca:
Type Adr = record N,P : String[10]; End;
Var F : File of Adr; Enreg : Adr; Begin assignfile(f,'c:\test.adr'); reset(f); enreg.N:='bonjour'; enreg.P:='hello'; Writeln(f,enreg); closefile(f); end;
et la ca devrait marcher. Voila, par contre je suis d'accord - sur un partie - avec Kanigou, tu devrais te fixer un objectf simple, un petit projet et avancer à ton rythme, car tu planchera sur des questions plus concretes. Bon courrage. MagicVinni
------------------------------- Réponse au message : -------------------------------
> Bonsoir. > > Je débute avec DELPHI, donc novice. > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier. > Quelqu'un peut m'aider ? > Voici le code simplifié : > -------- > unit Unit1; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls; > > type > TForm1 = class(TForm) > Button1: TButton; > Button2: TButton; > Button3: TButton; > Edit1: TEdit; > Edit2: TEdit; > procedure Button3Click(Sender: TObject); > procedure FormActivate(Sender: TObject); > private > { Déclarations privées } > public > { Déclarations publiques } > end; > > Type > Adr = record > N,P : String[10]; > End; > > var > Form1: TForm1; > F : File of Adr; > Enreg : Adr; > Table : Array[1..100] of adr; > Ne : LongInt; > NbEnr : Integer; > I : Integer; > > implementation > > {$R *.dfm} > > procedure affiche(Enr : Integer); > begin > Form1.Edit1.Text:=Table[Enr].N; > Form1.Edit2.text:=Table[Enr].P; > end; > > Procedure enregistre; > begin > Table[NE].N:=Form1.Edit1.Text; > Table[NE].P:=Form1.edit2.text; > end; > > procedure TForm1.Button3Click(Sender: TObject); > // Fermeture prog > begin > close; > end; > > procedure TForm1.FormActivate(Sender: TObject); > begin > AssignFile(F,'C:\_Richard\Test.adr'); > {$I-} > Reset(F); > {$I+} > NE:=1; > if IOResult=0 Then > Begin > Repeat > Read(F,Enreg); > Table[NE]:=Enreg; > NE:=NE+1; > Until Eof(F); > NBEnr:=Ne-1 ; > CloseFile(F); > NE:=1; > Affiche(NE); > End > Else > Begin > With Enreg Do > Begin > Table[1].N:=''; > Table[1].P:=''; > End; > NBEnr:=1 > End; > end; > > end. > > ----------------- > Merci d'avance pour votre aide ... > > > PS : Quel est le meilleur moyen de progresser avec Delphi ? > > Cybric
|
|
|
|
dimanche 6 juillet 2003 à 23:10:27 |
Re : Probleme lecture/ecriture dans fichier.

Delphiprog
|
Si tu l'avais dit plus tôt que tu avais rempli le fichier à la main, nous aurions compris plus vite ! Type Adr = record N,P : String[10]; End;
var Form1: TForm1; F : File of Adr;
|
Il ne FAUT PAS CONFONDRE la déclaration ci-dessus avec : Si dans cette dernière tu peux effectivement renseigner un fichier manuellement, en revanche la déclaration File of Adr n'a pas la même signification. Dans ce dernier cas, Delphi ajoute des délimiteurs entre chaque élément d'une structure Record de manière à pouvoir relire le contenu, que sa longueur réelle soit de dix caractères ou moins, que ce soit des entiers ou tout autre chose (sauf des objets et des tableaux). Il te faut donc une procédure pour enregistrer les données (voir le code source fourni dans le livre). May Delphi be with you------------------------------- Réponse au message : ------------------------------- > Le fichier, je lui ai mis 2 lignes de 20 caracteres manuellement avec NotePad. > J'obtient dans les Tedit beaucoup plus de 10 caracteres chacun, avec des signes en noir correspondant au retour de ligne. > > Faut-il ne pas remplir manuellement le fichier et avoir tout le temps une procedure d'enregistrement ? > Ou bien il y a une erreur dans la déclaration du "Record" ou dans la lecture des lignes du fichier. > > Merci par ta réponse, j'y ai passé 5 heures l'autre soir sans résultat. > > Cybric> > > ------------------------------- > Réponse au message : > ------------------------------- > > > Je ne comprend pas commen tu met les valeurs dans ton fichier, il n'y a pas de procedure d'enregistrement? > > MagicVinni > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Bonsoir. > > > > > > Je débute avec DELPHI, donc novice. > > > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier
|
|
|
|
mardi 8 juillet 2003 à 18:20:04 |
Re : Probleme lecture/ecriture dans fichier.

Cybric
|
Merci pour tes conseils et encouragements. Cela fonctionne.
Cybric
------------------------------- Réponse au message : -------------------------------
> Je penses que ca vient de là, car tu utilises un fichier contenant des enregistrements (record), alors que quand tu edite le texte avec le bloc note, c'est un fichier texte que tu manipule. > > Cree un fichier adr comme ca: > > Type > Adr = record > N,P : String[10]; > End; > > Var F : File of Adr; > Enreg : Adr; > Begin > assignfile(f,'c:\test.adr'); > reset(f); > enreg.N:='bonjour'; > enreg.P:='hello'; > Writeln(f,enreg); > closefile(f); > end; > > et la ca devrait marcher. > Voila, par contre je suis d'accord - sur un partie - avec Kanigou, tu devrais te fixer un objectf simple, un petit projet et avancer à ton rythme, car tu planchera sur des questions plus concretes. > Bon courrage. > MagicVinni > > > ------------------------------- > Réponse au message : > ------------------------------- >
|
|
|
|
mardi 8 juillet 2003 à 18:22:27 |
Re : Probleme lecture/ecriture dans fichier.

Cybric
|
Merci pour tes conseils, cette fois j'ai compris et cela marche. Cybric------------------------------- Réponse au message : ------------------------------- > Si tu l'avais dit plus tôt que tu avais rempli le fichier à la main, nous aurions compris plus vite ! > > > Type > Adr = record > N,P : String[10]; > End; > > var > Form1: TForm1; > F : File of Adr; > |
> Il ne FAUT PAS CONFONDRE la déclaration ci-dessus avec : > > Si dans cette dernière tu peux effectivement renseigner un fichier manuellement, en revanche la déclaration File of Adr n'a pas la même signification. > Dans ce dernier cas, Delphi ajoute des délimiteurs entre chaque élément d'une structure Record de manière à pouvoir relire le contenu, que sa longueur réelle soit de dix caractères ou moins, que ce soit des entiers ou tout autre chose (sauf des objets et des tableaux). > > Il te faut donc une procédure pour enregistrer les données (voir le code source fourni dans le livre). > May Delphi be with you> > > ------------------------------- > Réponse au message : > ------------------------------- > > > Le fichier, je lui ai mis 2 lignes de 20 caracteres manuellement avec NotePad. > > J'obtient dans les Tedit beaucoup plus de 10 caracteres chacun, avec des signes en noir correspondant au retour de ligne. > > > > Faut-il ne pas remplir manuellement le fichier et avoir tout le temps une procedure d'enregistrement ? > > Ou bien il y a une erreur dans la déclaration du "Record" ou dans la lecture des lignes du fichier. > > > > Merci par ta réponse, j'y ai passé 5 heures l'autre soir sans résultat. > > > > Cybric> > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Je ne comprend pas commen tu met les valeurs dans ton fichier, il n'y a pas de procedure d'enregistrement? > > > MagicVinni > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Bonsoir. > > > > > > > > Je débute avec DELPHI, donc novice. > > > > Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Les données affichées ne correspondent pas a ce que je met dans le fichier >
|
|
|
Cette discussion est classé dans : end, table, procedure, begin, adr
Répondre à ce message
Sujets en rapport avec ce message
Index d'un table Dbase [ par webazard ]
Bonjour, je crée un base Dbase indiqué dans l'aide de delphi en remplacant ttparadox par ttdbase.en supprimant la construction d'index min prog marche
Hints dans une DLL [ par almi ]
J'ai une fenêtre (TForm) qui fonctionne parfaitement dans mon executable.Si je la place dans une DLL, j'obtiens le message :Ne peut assigner TFont à T
Problème Econversion Error lors de l'affichage d'une info bulle dans une fenetre MDIChild dans une DLL [ par DarkSky ]
Salut a tous,j'ai créer un projet MDI avec Delphi 6 donc les fenetre MDi Filles sont dans une DLL.j'ai une erreur EConversionError a la place de l'aff
Champs Chamboulés [ par apz ]
Salut,1- En voulant avoir une table *.DB à partir d'une table *.DBF, en utilisant le Module Base de Données (Outils/Utilitaires/Copier), j'avais dans
pb d'affichage d'un TChart [ par Pegase20 ]
bonjour, J'affiche une autre fiche qui contient un graphique (créé à l'aide d'un TChart) quand je clique sur un bouton.Mon pb c'est que le graph ne
MDI Filles dans une DLL [ par DarkSky ]
..::= DarkSky =::..Salut almi,j'ai exactement le même problème que toi (Hint) sur l'utilisation de MDI Filles dans une DL
projet de chat avec delphi 7 [ par dk ]
hello every body j'aimerais faire un chat mais voila le probleme (si on peut dire) c ke g delphi 7 avec comme composant installer Tcpserver et Tcpclie
plein derreur a la fermeture de mon prog qui font lanter windows [ par dk ]
voila javais deja eu qq petits soucis avec le prjet de chat que je suis en train de realiser mais jamais a cette ampleur lol, qd je lance mon prog ca
Changer la forme de l'animation matrix [ par Also know as ]
Bonjour,Voici une méthode permettant de créer une animation à la matrix sans sa police.Il suffit juste d'appeler sa Form MainForm, mettre un memo et c
Reutiliser une procedure [ par jimmy69 ]
Bonjour a tous,Voila je debute avec delphi et je suis un peu fade :-) !!!!J'aimerais savoir s'il etait possible de reutiliser une procedure recement d
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|