Cybric
Messages postés9Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention17 octobre 2003
-
4 juil. 2003 à 23:03
Cybric
Messages postés9Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention17 octobre 2003
-
8 juil. 2003 à 18:22
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;
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 ?
kanigou
Messages postés6Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention31 août 2005 5 juil. 2003 à 12:30
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 ...
Cybric
Messages postés9Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention17 octobre 2003 6 juil. 2003 à 13:06
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
magicvinni
Messages postés235Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention26 juillet 2010 6 juil. 2003 à 22:14
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
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 6 juil. 2003 à 23:10
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 :
F : TextFile;
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