djainfo
Messages postés4Date d'inscriptionsamedi 7 juin 2008StatutMembreDernière intervention10 juin 2008
-
7 juin 2008 à 16:22
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
13 juin 2008 à 14:41
Bonjour
est qu'il ya une possibilité d'extraire les données a partir d'un fichier text san délimiteurs
vers une base de données access sous delphi .
merçi d'avance.
djainfo
Messages postés4Date d'inscriptionsamedi 7 juin 2008StatutMembreDernière intervention10 juin 2008 10 juin 2008 à 13:08
Salut
j'ai besoin de sauvegarder les données a partir d'un fichier text dans une base access.
le format du fichier text est du type( nom prenom age) sans délimiteur:
aaaaaa yyyyyyy 22
ffffffffffffffkkkkkkkkk28
etc...
voici comment je m'y prend :
begin
AssignFile(Fichier, NOM);
Reset(Fichier);
Repeat
NOM :=Copy(Ligne,1,10);
PRENOM:=Copy(Ligne,11,10);
AGE:=Copy(Ligne,21,2);
ADOQuery1.Close;
ADOQuery1.SQL.Add('Insert into table1 ');
ADOQuery1.SQL.Add('Values('''+(NOM)+''','''+(PRENOM)+''','''+(AGE)+''') ');
ADOQuery1.ExecSQL;
Until Eof(Fichier) ;
CloseFile(Fichier);
end;
mais ca marche pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 12 juin 2008 à 20:24
Pour ceux qui ne verraient pas la différence entre le code de djainfo et celui de cantador, c'est simple :
1- le code de Cantador est meilleur
2- djainfo a simplement oublié d'appeler la fonction ReadLn...étourderie ?
May Delphi be with you !
<hr color="#008000" />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 12 juin 2008 à 22:18
Oui, en plus...
Je me demande si le code suivant n'est pas encore plus efficace :
type
TEnr = record
nom: string[10];
prenom: string[10];
age: string[2];
end;
function TForm1.LoadFile(const aFilename: TFilename): integer;
var
enr: TEnr;
F: file of TEnr;
begin
result := 0;
if FileExists(AFilename) then
begin
AssignFile(F, AFilename);
try
Reset(F);
while not eof(F) do
begin
Read(F, enr);
ADOQuery1.Close;
ADOQuery1.SQL.Add('Insert into table1 ');
ADOQuery1.SQL.Add('Values(''' + (enr.NOM) ''',''' + (enr.PRENOM) +
''','''
+ (enr.AGE) + ''') ');
ADOQuery1.ExecSQL;
end;
result := FileSize(F);
finally
CloseFile(F);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Chem: string;
begin
Chem := 'c:\test20\TonFichier.txt';
ShowMessageFmt('%d enregistrements ajouté(s)', [LoadFile(Chem)]);
end;
A voir...
May Delphi be with you !
<hr color="#008000" />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 13 juin 2008 à 10:32
Désolé Cantador mais je m'étais basé sur ton code qui donnait une longueur de 10 caractères au nom et au prénom et une longueur de 2 caractères à l'âge.
A djainfo d'adapter les longueurs à ses besoins, bien entendu.
Cantador, on t'adore et félicitations pour ton âge canonique que j'ignorais
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 13 juin 2008 à 14:41
Cantador, on t'adore...
mais moi je n'adore pas tout le monde..
Je me souviens bien d'ailleurs de t'avoir lu en train de pester après ceux qui ne répondent pas sur le forum et jurer que l'on ne t'y reprendrai plus..