povtype
Messages postés11Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention26 septembre 2008
-
25 sept. 2008 à 14:52
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
26 sept. 2008 à 22:26
Bonjour à tous.
Je suis en train de créer une application qui a pour but d'enregistrer tous les fichiers contenus dans un répertoire.
Voice le code ue j'utilise:
procedure TForm1.Button1Click(Sender: TObject);
{$WARN SYMBOL_PLATFORM OFF}
Var Chemin : String;
Donnees: String;
Info : TSearchRec;
begin
ListBox1.Items.Clear; //ligne que je compte virer
{ Pour être sur que la barre oblique finisse le nom du chemin }
Chemin := IncludeTrailingPathDelimiter('C:\a_test');
{ Recherche de la première entrée du répertoire }
If FindFirst(Chemin+'*.*',faAnyFile,Info)=0Then
Begin
Repeat
ListBox1.Items.Add(Info.FindData.cFileName); //ligne que je compte virer
sauvegarde.insert;
Donnees := Info.FindData.cFileName;
sauvegarde.FieldByName('nom').AsString:=Donnees.Text; *
{ Il faut ensuite rechercher l'entrée suivante }
Until FindNext(Info)<>0;
{ Dans le cas ou une entrée au moins est trouvée il faut }
{ appeler FindClose pour libérer les ressources de la recherche }
FindClose(Info);
End;
notez que j'ai testé si ça relevait bien les fichiers dans ma liste box, de ce côté là pas de problème, le soucis c'est avec la requête d'insertion au niveau de l'*, ça me marque
type record object ou class requis
.
il est possible qu'il y aie un problème au niveau de l'affectation de la variable "Donnees".
Si quelqu'un peut m'eclaircir sur ce que je dois mettre à la place...
Il faut bien taper la requête sinon comment le programme peut deviner le champ dans lequel il va faire l'enregistrement.
De plus j'ai déjà utilisé ce genre de requête pour faire un enregistrement à la fois et là ça marchait c'est quand je veux en faire plusieurs en même temps que ça m.....
povtype
Messages postés11Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention26 septembre 2008 25 sept. 2008 à 15:43
ok je viens de comprendre ce que tu viens de mettre, le * n'est pas dans le code, c'était juste pour situer la position de l'erreur en plus je l'ai marqué dans le bas de mon message.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 26 sept. 2008 à 08:59
Salut,
Ta variable Donnees est une string... Donc pas de propriété .Text, d'où le message d'erreur rencontré... Si tu mets juste :
sauvegarde.FieldByName('nom').AsString := Donnees;
ça devrait passer...
Idée : Tu dois pouvoir également enregistrer la liste complète des fichiers dans un seul enregistrement en utilisant un champ BLOB dans lequel tu stockes un TStrings contenant la liste des fichiers recherchés...
Simon
Vous n’avez pas trouvé la réponse que vous recherchez ?
povtype
Messages postés11Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention26 septembre 2008 26 sept. 2008 à 14:14
effectivement, je viens de rajouter le .open avant le findfirst et là ça m'enregistre plusieurs "Info.FindData.cFileName" et non les noms des fichiers comme je le voudrais. J'ai donc mal affecté la variable données.