OVH Cloud OVH Cloud

déplacer un fichier

9 réponses
Avatar
dav
dans mon programme je dois a un moment déplacer des images :

mon arborescence est la suivante :

C:\fichier\photos\france\image.jpg

et je dois transférer cette image dans :

C:\fichier\photos\divers\image.jpg

uniquement si une certaine condition est remplie.
( en l'occurence je transfert la photo si la nationalité est bien
"français" )

comment dois je envisager la chose, utiliser les commandes VB ? fso ?
autre chose ? quel est le plus sur, sachant qu'il ne s'agit que d'une
opération ponctuelle de mise a jour de base de données....

merci de votre aide,
dav

9 réponses

Avatar
christophe-pasde
Bonjour,

Déjà oublie FSO.

Ensuite, défini un objet Image qui comporte en propriété ou fonction les
conditions de déplacement (si français implique propriété country ou
langue)

Ensuite tu peux utiliser en l'améliorant la classe nomfichier ci-dessous
la methode CopieEtRenomme te donnant une piste.

Christophe


Option Explicit

Private mchemin As String
Private mNom As String
Private mextention As String * 3


Public Property Get chemin() As String
chemin = mchemin
End Property

Public Property Let chemin(ByVal vNewValue As String)
If Mid$(vNewValue, Len(vNewValue), 1) <> "" Then
vNewValue = vNewValue & ""
End If
mchemin = vNewValue
End Property
Public Property Get nomfichier() As String
nomfichier = mNom
End Property
Public Property Let nomfichier(ByVal vNewValue As String)
mNom = vNewValue
End Property
Public Property Get extention() As String
extention = mextention
End Property

Public Property Let extention(ByVal vNewValue As String)
mextention = vNewValue
End Property

Public Function existe() As Boolean

On Error Resume Next
existe = ((GetAttr(mchemin & mNom & "." & mextention) And vbDirectory) = 0)

End Function

Public Sub renomme(NewName As String)
Name mchemin & mNom & "." & mextention As mchemin & NewName & "." &
mextention
End Sub

Public Sub deplace(newpath As String)
If Mid$(newpath, Len(newpath), 1) <> "" Then
newpath = newpath & ""
End If
Name mchemin & mNom & "." & mextention As newpath & mNom & "." & mextention
End Sub

Public Sub CopieEtRenomme(NewName As String, ext As String)

Dim oldname As String
Dim newcompletename As String
On Error GoTo CopieEtRenomme_Error



oldname = mchemin & mNom & "." & mextention
newcompletename = mchemin & NewName & "." & ext
FileCopy oldname, newcompletename

On Error GoTo 0
Exit Sub

CopieEtRenomme_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
procedure CopieEtRenomme of Module de classe Nomfichier"

End Sub
Public Sub efface()
Dim n As String
n = mchemin & mNom & "." & mextention
Kill (n)
End Sub

dav a écrit :

dans mon programme je dois a un moment déplacer des images :

mon arborescence est la suivante :

C:fichierphotosfranceimage.jpg

et je dois transférer cette image dans :

C:fichierphotosdiversimage.jpg

uniquement si une certaine condition est remplie.
( en l'occurence je transfert la photo si la nationalité est bien
"français" )

comment dois je envisager la chose, utiliser les commandes VB ? fso ?
autre chose ? quel est le plus sur, sachant qu'il ne s'agit que d'une
opération ponctuelle de mise a jour de base de données....

merci de votre aide,
dav


Avatar
Jean-Marc
"christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<> a écrit dans le
message de news:4157fa0e$0$709$
Bonjour,



Hello,

Private mchemin As String
Private mNom As String




Private mextention As String * 3



Hmm, et pour copier mon fichier "tutu.html" ?
Et mon fichier "titi.jpeg" ?
ou bien mon fichier "myconfig.old.sauvegarde" ?

3 caractères pour l'extension sont ils bien raisonnables?

d'autre part, pourquoi tout ce code quand 2 instructions
sufisent?

FileCopy old, new
Kill old

A moins que ce code soit un exercice pour l'utilisation
des classes, il me semble un peu violent pour un simple
déplacement, non ?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
christophe-pasde
Bonjour,

"tu peux l'utiliser en l'améliorant ..."

Bien sur c'est un peu violent et trop couplé (extention = string*3),
mais cela montre à Dav que l'on peut pour traiter ce genre de pbs
récurrents utiliser des classes, ce qui permet de réutiliser le code.

D'autre part le temps perdu à écrire le code suplémentaire pour une
classe, est largement compensé par la maintenance et la réutilisation aisée.

Comme tu le signes, il y a 10 catégories de gens ceux qui comprennent le
binaire et les autres. Mais la première catégorie est divisée en deux
depuis les années 90, ceux qui sont OO et ceux qui n'y sont pas.
A ce sujet un lien interressant
http://ftp.lami.univ-evry.fr/pub/specif/fzaidi/UML%20pam.pdf
et particuliérement le § Encadrement des projets objet.

amicalement

Christophe


Jean-Marc a écrit :
"christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<> a écrit dans le
message de news:4157fa0e$0$709$

Bonjour,




Hello,


Private mchemin As String
Private mNom As String





Private mextention As String * 3




Hmm, et pour copier mon fichier "tutu.html" ?
Et mon fichier "titi.jpeg" ?
ou bien mon fichier "myconfig.old.sauvegarde" ?

3 caractères pour l'extension sont ils bien raisonnables?

d'autre part, pourquoi tout ce code quand 2 instructions
sufisent?

FileCopy old, new
Kill old

A moins que ce code soit un exercice pour l'utilisation
des classes, il me semble un peu violent pour un simple
déplacement, non ?



Avatar
jean-marc
"christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<> wrote in message
news:415901a5$0$21144$
Bonjour,

"tu peux l'utiliser en l'améliorant ..."

Bien sur c'est un peu violent et trop couplé (extention = string*3),
mais cela montre à Dav que l'on peut pour traiter ce genre de pbs
récurrents utiliser des classes, ce qui permet de réutiliser le code.

D'autre part le temps perdu à écrire le code suplémentaire pour une
classe, est largement compensé par la maintenance et la réutilisation


aisée.

Comme tu le signes, il y a 10 catégories de gens ceux qui comprennent le
binaire et les autres. Mais la première catégorie est divisée en deux
depuis les années 90, ceux qui sont OO et ceux qui n'y sont pas.



Bonjour,

On peut faire de la réutilisation de code sans faire d'OO, mais c'est un
autre débat.

Je voulais juste faire remarquer que comme Dav posait une question
relativement
simple, le plonger directement dans le bain des classes était peut être un
peu violent :-)

Pour le reste, tu as tout à fait raison et je suis moi aussi partisan de
programmer
de façon générique et je suis le premier à promouvoir systématiquement
l'utilisation de code et de fonctions réutilisables.

Amicalement,
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Pascal B.
Bonjour DAV,

Pour déplacer un fichier, c'est très simple (une ligne suffit !!!!!!!!!)

NAME "C:fichierphotosfranceimage.jpg" AS "C:fichierphotosdiversimage.jpg"

(Cette instruction permet également de renomer fichier)

Cordialement
Pascal B.


"dav" wrote in message news:4157f41c$0$724$
| dans mon programme je dois a un moment déplacer des images :
|
| mon arborescence est la suivante :
|
| C:fichierphotosfranceimage.jpg
|
| et je dois transférer cette image dans :
|
| C:fichierphotosdiversimage.jpg
|
| uniquement si une certaine condition est remplie.
| ( en l'occurence je transfert la photo si la nationalité est bien
| "français" )
|
| comment dois je envisager la chose, utiliser les commandes VB ? fso ?
| autre chose ? quel est le plus sur, sachant qu'il ne s'agit que d'une
| opération ponctuelle de mise a jour de base de données....
|
| merci de votre aide,
| dav
Avatar
Driss HANIB
pas tout à fait d'accord car si j'ai bien compris cette fonction recopie,
mais ne déplace pas.
Ce qui signifie que l'original est toujours conservé.
il faut alors le supprimer : fonction Kill


"Pascal B." a écrit dans le message de
news:
Bonjour DAV,

Pour déplacer un fichier, c'est très simple (une ligne suffit !!!!!!!!!)

NAME "C:fichierphotosfranceimage.jpg" AS


"C:fichierphotosdiversimage.jpg"

(Cette instruction permet également de renomer fichier)

Cordialement
Pascal B.


"dav" wrote in message


news:4157f41c$0$724$
| dans mon programme je dois a un moment déplacer des images :
|
| mon arborescence est la suivante :
|
| C:fichierphotosfranceimage.jpg
|
| et je dois transférer cette image dans :
|
| C:fichierphotosdiversimage.jpg
|
| uniquement si une certaine condition est remplie.
| ( en l'occurence je transfert la photo si la nationalité est bien
| "français" )
|
| comment dois je envisager la chose, utiliser les commandes VB ? fso ?
| autre chose ? quel est le plus sur, sachant qu'il ne s'agit que d'une
| opération ponctuelle de mise a jour de base de données....
|
| merci de votre aide,
| dav




Avatar
Barsalou
Salut

J'ai suivi avec intérêt votre discussion (et appris au passage l'existence
de l'instruction Name).
Bien qu'ancien du QBasic et du Basic Pro, je n'ai pas eu trop de mal à
assimiler les techniques de feuilles, contrôles etc.
Cependant je nage complètement à propos de l'utilisation des Classes.
Existe-t-il une information réellement accessible sur le sujet.
Merci dans ce cas de me l'indiquer.
Avatar
jean-marc
"Driss HANIB" wrote in message
news:
pas tout à fait d'accord car si j'ai bien compris cette fonction recopie,
mais ne déplace pas.
Ce qui signifie que l'original est toujours conservé.
il faut alors le supprimer : fonction Kill



Hello,
non:
Name source as Destination
renomme ET déplace éventuellement, donc la source est bien détruite.
Une seule instruction suffit.

Je préfère quand à moi faire en 2 fois avec:
1/ FileCopy
2/ Kill

C'est plus secure, car j'ai le contrôle et donc la possibilité de
vérifier que le FileCopy est OK avant de détruire ma source.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
christophe-pasde
Si l'anglais te fais pas peur
http://www.mvps.org/EDais/

Autrement il y a la MSDN

Christophe.


Barsalou a écrit :

Salut

J'ai suivi avec intérêt votre discussion (et appris au passage l'existence
de l'instruction Name).
Bien qu'ancien du QBasic et du Basic Pro, je n'ai pas eu trop de mal à
assimiler les techniques de feuilles, contrôles etc.
Cependant je nage complètement à propos de l'utilisation des Classes.
Existe-t-il une information réellement accessible sur le sujet.
Merci dans ce cas de me l'indiquer.