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.
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;
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.
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.
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.
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..