Salut à tous je voulais vous demander comment faire pour concerver les données entrée par un utilisateur.
Mon programme est censé permettre la création d'un arbre généalogique dynamique. Je suis en core au début. Voici le programme.
program projet;
uses crt;
type
ensemble= set of char;
Const CValide : Ensemble= ['+',' ','*','-','/','0','1','2','3','4','5','6','7','8','9','A','a','z','e','r','t','y','u','i',
'o','p','q','s','d','f','g','h','j','k','l','m','—','w','x','c','b','n','B','C','D','E','F'];
type element= string;
ptr = ^sommet;
sommet = record
Pr:ptr;
Pf:ptr;
Fr:ptr;
Gen:integer;
num:integer;
Val:element;
end;
fil= record
deb:ptr;
fin:ptr;
end;
function noms(e:integer):string;
var tab:array[1..10] of char;
c:char;
i:integer;
begin
for i:=1 to 10 do tab[i]:=' ';
i:=1;
writeln('cbon');
c:=' ';
while (c in cvalide) do
begin
write('');
c:= readkey;
if (c in cvalide) then
begin
write(c);
tab[i]:=c;
end;
i:=i+1;
end;
noms:=tab;
end;
procedure defiler( F:fil);
var F1,Aux:ptr;
begin
F1:=@F.deb;
F.deb^:= F.deb^.fr^;
F1^.fr:= nil;
end;
procedure enfiler (A:element;F:fil);
var nouv:sommet;
un_pointeur:ptr;
begin
nouv.Pr:=nil;
nouv.Fr:=nil;
nouv.Pf:=nil;
nouv.val:='';
nouv.num:=0;
begin
If F.deb =nil then
file_vide:=true
else file_vide:=false;
end;
function existe_fils(f:sommet;A:sommet):boolean;
begin
if f.Pf=nil then
existe_fils:=false
else existe_fils:=true;
end;
function lire(a:string):string;
begin
read(a);
end;
function existe_frere(f:sommet;A:sommet):boolean;
begin
if f.Fr=nil then
existe_frere:=false
else existe_frere:=true;
end;
var nouv:sommet;
function creersommet(a:integer):ptr;
var u:sommet;
p:ptr;
begin
u.val:=' ';
u.pr:=nil;
u.fr:=nil;
u.pf:=nil;
u.num:=0;
p:=@u;
creersommet:=p;
end;
var car,car1:char;
k:string;
W,Z,X:sommet;
nb,j:integer;
procedure enfants(nom_pere:string;n:integer);
var nouv:sommet;
begin
end;
begin
clrscr;
writeln('entrer le nom de l ancˆtre');
X.Pr:=nil;
X.Fr:=nil;
X.Pf:=nil;
X.val:=noms(2);
X.num:=0;
k:=X.val;
writeln(k);
writeln('est ce que ',k ,'a eu des enfants:Y / N');
car :=readkey;
if car='y' then
begin
writeln('entrer le nom de son 1er Fils');
X.Pf:= @W ;
k:=W.val;
writeln('',k,' a t il des freres?:Y / N');
car1 :=readkey ;
if car1='y' then
begin
writeln('entrez le nombre');
read (nb);
j:=1;
while (j<=nb) do
begin
writeln('entrez le nom du ',j,'Šme frŠre de ',k,'');
Z.val:=noms(2);
Z.Pr:=nil;
Z.Fr:=nil;
Z.Pf:=nil;
Z.num:=0;
W:=W.fr^;
j:=j+1;
end;
end;
end;
end.
en fait ce n'est qu'une partie test j'aimerait pouvoir stocker en mémoire les contenues des variables X, W et Z afin de pouvoir les réutilisées, sinon à un individu dans l'arbre crée va correspondre une variable ce qui n'est pas bon du tout.
Aussi j'aimerai savoir si mes syntaxe son bonne.
__________________________
mieux vaut être conscient de son ignorance, que d'ignorer qu'on ignore.
Il faudrait que tu réexpliques ce que tu souhaites faire.
Merci d'utiliser les balises [ CODE ] [ /CODE ] pour encadrer ton code.
Avant de le donner brut de fonderie, expliques le principe de fonctionnement.
Veux-tu stocker les valeurs dans des variables, dans des fichiers ? Leur nombre est fixe, variable ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Salut
Tu doit être beaucoup plus fort que moi, j\'ai pas tout compris ton scripte, mais je vais essayer de répondre (en espérant que je ne suis pa trop a coter de la plaque)
Comme je ne sais pas gérer les bases de données (et je suis meme pas sur que ma version les gèrent) je stock toutes mes infos dans un .txt à la racine du prog ou meme quelque par pommer sur lordi. Le prob c que tu dois faire dans ton prog une fonction qui retrouve les infos dans ton .txt et c long a faire...
Chai pa se que tu en pense mais c comme sa que je fait et que sa a tjrs marcher avec moi lol.
Si ton delphi gèrent les bases de données, aprend a les utiliser, ou si nn fait comme moi.
mon adresse MSN si tu veu me parler (j\'aimerai bien t\'aider dans ton projet)
guillaumeb.69@hotmail.fr
__________________________
Blademan1
Salut Blademan1, si tu stockes tout dans des fichiers, je te conseille d'utiliser des fichier INI, Delphi propose des méthodes pour te faciliter le travail.
Tu peux facilement retrouver une section dans ton fichier, et les clés dedans.
Un fichier INI est découpé en section et dans chacune, il y a des couples Clé = Valeur.
Tu t'embêteras moins ainsi.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
a ouia !
faudra que j'essai mai je sais pa faire, je v faire des recherches sur internet .
Si les .INI c'est comme tu di, sa ressemble beaucoup à une base de donné.
Si tu peu me trouver un tuto ou me montrer lexemple d'un script pour écrire dedans sa serai simpas
__________________________
Blademan1
procedure FichierIni;
var
FichierIni : TIniFile;
begin
FichierIni := TIniFile.Create( 'C:\Fichier.ini' );
// Test si une valeur existe
if FichierIni.ValueExists( 'MaSection', 'MaValeur' ) then
begin
ShowMessage( 'La valeur est trouvée' );
ShowMessage( 'Elle vaut :' + FichierIni.ReadString( 'MaSection', 'MaValeur', 'Inexistante' ) );
FichierIni.WriteString( 'MaSection', 'MaValeur', 'Nouvelle valeur' );
end;
end;
Il existe aussi ReadInteger, ReadFloat, ReadDate, ReadSection, ReadSections...
Et aussi leurs équivalents write, mais pour ça l'aide de Delphi et la complétion de code t'aideront bien mieux que moi.
Au fait, ce qu'ils appellent valeur, c'est la clé en fait dans le coupe clé/valeur.
Si valeur existe veut dire, si clé existe.
De la même manière, il existe des composants pour lire et écrire dans des fichiers au format XML qui publient des méthodes très pratiques.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
ouaouuuu c super génial !!!
jesserai se soire, la chui en stage et je dois finir se qu'on ma demander de faire ( un bon programme ^^)
merci pac
__________________________
Blademan1
Re, il existe une fonction super pratique, dans Delphi, ce qu'on appelle l'Aide, on accède à cette fonction en tappant F1.
Si on sélectionne un mot, puis qu'on active la fonction aide avec F1, on a l'aide de ce mot.
En faisant ainsi sur le mot TIniFile, j'ai une fenêtre qui a apparu qui me dit ceci :
Aide Delphi dit : TIniFile stocke et lit les informations et des paramètres propre à une application à partir de fichiers INI.
Unité
IniFiles
Unité indique dans quelle unité on trouve la fonction ou la classe, c'est donc cette unité qu'il faut rajouter dans la clause uses afin de pouvoir l'utiliser.
Désolé, je prends un ton un peu ironique pour t'inciter à aller plus souvent dans l'aide de Delphi, elle est très complète, simple et bien pensée, on y apprend beaucoup de choses dedans.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
ouaou c gentil tou sa lol chui aller dans l'aide, mais mon prob c pa d'y aller plus souvent (car j'y vai quan meme souvent) mai cest de savoir l'utiliser
avant de poster g voulu voir si sa marquai de mettre un uses, et j'en est pas vu, et je te di merci car tu ma apri que unité voulait dire uses...
jessairai et je te dirai si sa marche et cette foi sa a interet ^^
merci @+
__________________________
Blademan1