hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 2009
-
7 janv. 2005 à 10:31
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005
-
29 mars 2005 à 14:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Par contre, j'ai l'impression que ton prog boucle à l'infini, non ?
Car j'ai mis des msgbox avant et après, et il n'arrive pas à la fin (juste avant le retour de ta fonction)
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 14:14
c vraimet bizarre
jte jure jvien de lancer le projet
et il fonctionne très bien
je vais fouillé plus en détail
et je te tiens au courant
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 14:09
Dis, j'ais juste une autre petite question, tu utilise la Microsoft .NET Framework SDK Version 2 ou supérieur?
Si oui, peux tu me dire ou je puis trouver ce Framwork?
Merci d'avance ;)
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 13:56
Reeeeeeeeee,
voilà, je viens de refaire un projet avec ton code, je l'ai mis sur un module avec un bouttons pour lanncer la recherche.
Mais j'ais toujours le même problème :s
Merci pour la source, je test ça et te dis quoi ;)
Bonne prog ;)
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 13:50
bien sûr tu peux la reprendre avec plaisir !!
Tiens moi au courant si cela fonctionne !!
@ #
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 13:14
Oui, l'erreur viens toujours du même endrois :s
Mais je viens de copier ton code, je vais le tester immédiatement, je te remercie.
Pour ta source, tu l'as réactualisée sur CodeSource? Puis je la preprendre?
Merci de tout en tout les cas ;)
Bonne prog ;)
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 12:48
je te met le code tel que je l'ai modifié, au cas où il serait différent du tien
'Dans ce module ce trouve la déclaration des API de Windows
'que j'utilise pour effectuer la recherche ainsi que les
'déclarations utiles à ces même API de Windows plus les
'fonctions utilisées pour la recherches
'Les strucutres de données
Public Structure FILETIME 'Structure définissant la date et l'heure du premier acces et du dernière acces au fichier
Public dwLowDateTime As Long
Public dwHightDateTime As Long
End Structure
Public Structure WIN32_FIND_DATA 'Structure utilisée pour récupérée une partie des informations sur les fichiers
Public dwFileAttributes As Long
Public ftCreationTime As FILETIME
Public ftLastAccessTime As FILETIME
Public ftLastWirteTime As FILETIME
Public nFileSizeHigth As Long
Public nFileSizeLow As Long
Public dwReserved0 As Long
Public dwReserved1 As Long
Public cFileName As String
Public cAlternate As String
End Structure
'Structure personnel ;)
Public Structure FileList
Public File() As WIN32_FIND_DATA
Public Path() As String
Public Number As Long
End Structure
'Les constantes utilisée par le module de code
Private Const MaxPath = 256 'Taille du chemin d'acces
Private Const INVALIDE_HANDLE_VALUE = -1 'Indicateur d'erreur ou de réussite
Private Const FILE_ATTRIBUTE_READONLY = &H1 'Indique un fichier en lecture seul
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 'Indique un fichier caché
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 'Indique un fichier système
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10 'Indique un dossier
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 'Indique un fichier archivé
Private Const FILE_ATTRIBUTE_NORMAL = &H80 'Indique un fichier normal
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100 'Indique un fichier temporaire
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800 'Indique un fichier compressé différament que FILE_ATTRIBUTE_ARCHIVE
'Les API
'Déclaration de la fonction FindFirstFile contenue dans Kernel32.dll
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindNextFile contenue dans Kernel32.dll
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFaile As Long, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindClose contenue dans Kernle32.dll
Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'Voilà pour la déclaration des API de Windows, reste à les utilisées
Public Sub StartSearching(ByVal sPath As String, ByVal sFileType As String)
'Fonction de lancement de la recherche
'déclaration des variables locales
Dim sResult As New FileList
Dim sNumber As Long
Dim I
'Lancement de la recherche
sNumber = Searching(sPath, sFileType, sResult)
MsgBox(sNumber & " trouvée, have fun", MsgBoxStyle.Information)
End Sub
Private Function Searching(ByVal Path As String, ByVal FileName As String, ByRef Result As FileList) As Long
'La fonction de recherche est mise en privée car nous passerons
'par une autre fonction di module pour lancer la recherche
'avec les options sélectionnées par l'utilisateur
'Déclaration des variables locales
Dim lpFFD As New WIN32_FIND_DATA
System.Windows.Forms.MessageBox.Show(lpFFD.ftCreationTime.dwHightDateTime)
Dim hFindFile As Long
Dim lgRep As Long
Dim PathFile As String
'Lancement de la recherche demandée par la fonction StartSearching
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 12:45
Je viens de compiler et executer ton module en appelant la fonction principale
et tout à bien fonctionner
8o|
Sinon j'ai modifié ma source
Et c'est vrai qu'il était difficile de revenir après avoir choisi une des deux actions
Merci encore !
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 12:35
est-ce toujours au même endroit ?
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 12:34
Peux tu me dire où se trouve ton erreur exactement, stp ?
J'aimerais vraiment t'aider !
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 12:05
Salut à toi Ivanoff1,
Voilà, je viens de faire les petites modif que tu me connseillais, je lance un pas à pas et ... PAN ... Même erreur, toujours la référence d'objet qui n'est pas définie à une instance d'objet :'(
Pour ce qui est du langague objet, je supose que tu parle de la POO? Si oui, je répond de suite non, je connais pas trops cette utilisation, je l'employais très peux en faite ou alors sans m'en rendre conte :s
Bon, je vais me remettre un peux sur le projet, j'espère avoir d'autre info utile, mais je voudrais dire une chose:
Autant qu'en VB6 je faisais cette fonction facilement qu'en .Net, je n'arrive presque à rien fair :s Le langague est trops différent :s
Enfin, pas grave, on réapprendra ça ;)
Merci des infos ;)
Bonne prog à tous,
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 29 mars 2005 à 11:26
Tout d'abord, je pense que sResult, dans ta méthode : Searching, sert à récupérer des valeurs, non ?
Si c'est le cas, et bien cela ne fonctionnera jamais car, tu passe le paramètre en valeur, alors qu'ill faudrait le passer en ByRef. Si je me suis trompé, escuse moi...
En tout cas ce qui est sur, c'est que ton sResult n'est pas instancié !
Donc tu as obligatoirement cette erreur :
"System.NullReferenceException"
Il faut faire :
Dim sResult as New FileList
Dans ta méthode : StartSearching
De plus, pour que la méthode qui te pose problème fonctionne, il faut faire :
Dim lpFFD As New WIN32_FIND_DATA
et non
Dim lpFFD As WIN32_FIND_DATA
dans ta méthode, Searching
Car il faut réservé l'espace mémoire pour cette api (c'est tout de même une classe)
Connais-tu le langage objet ?
Sinon, il y a quelques erreurs selon moi, non ?
Tout d'abord ta méthode StartSearching est une procédure, n'est ce pas ?
Car tu écrit "function", cela me semble incorrecte, il vaut mieux la déclarer Sub ...
Je pense qu'avec ceci, tu n'auras plus d'erreur de ce type :oD
Si tu as d'autres questions n'hésite pas !!
Have a good prog !
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 01:49
Oh, je viens de relire mon post, j'ais oublié un détail qui es peut être important.
Dans les variables Path as FileName j'ais mis respectivement la valeur "d:" et "*.*".
Donc:
Path = "d:"
FileName = "*.*"
Merci encor ;)
Bonne prog à tous ;)
@++
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 29 mars 2005 à 01:47
Tout d'abort, merci de bien vouloir m'aider pour ce projet de transfère de l'utilisation de API si dessus.
Enfin, voici le code du module, préparé comme pour envoyer (amsi pas encore fini :s) :
Module declarationapi
'Dans ce module ce trouve la déclaration des API de Windows
'que j'utilise pour effectuer la recherche ainsi que les
'déclarations utiles à ces même API de Windows plus les
'fonctions utilisées pour la recherches
'Les strucutres de données
Public Structure FILETIME 'Structure définissant la date et l'heure du premier acces et du dernière acces au fichier
Public dwLowDateTime As Long
Public dwHightDateTime As Long
End Structure
Public Structure WIN32_FIND_DATA 'Structure utilisée pour récupérée une partie des informations sur les fichiers
Public dwFileAttributes As Long
Public ftCreationTime As FILETIME
Public ftLastAccessTime As FILETIME
Public ftLastWirteTime As FILETIME
Public nFileSizeHigth As Long
Public nFileSizeLow As Long
Public dwReserved0 As Long
Public dwReserved1 As Long
Public cFileName As String
Public cAlternate As String
End Structure
'Structure personnel ;)
Public Structure FileList
Public File() As WIN32_FIND_DATA
Public Path() As String
Public Number As Long
End Structure
'Les constantes utilisée par le module de code
Private Const MaxPath = 256 'Taille du chemin d'acces
Private Const INVALIDE_HANDLE_VALUE = -1 'Indicateur d'erreur ou de réussite
Private Const FILE_ATTRIBUTE_READONLY = &H1 'Indique un fichier en lecture seul
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 'Indique un fichier caché
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 'Indique un fichier système
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10 'Indique un dossier
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 'Indique un fichier archivé
Private Const FILE_ATTRIBUTE_NORMAL = &H80 'Indique un fichier normal
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100 'Indique un fichier temporaire
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800 'Indique un fichier compressé différament que FILE_ATTRIBUTE_ARCHIVE
'Les API
'Déclaration de la fonction FindFirstFile contenue dans Kernel32.dll
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindNextFile contenue dans Kernel32.dll
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFaile As Long, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindClose contenue dans Kernle32.dll
Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'Voilà pour la déclaration des API de Windows, reste à les utilisées
Public Function StartSearching(ByVal sPath As String, ByVal sFileType As String)
'Fonction de lancement de la recherche
'déclaration des variables locales
Dim sResult As FileList
Dim sNumber As Long
Dim I
'Lancement de la recherche
sNumber = Searching(sPath, sFileType, sResult)
MsgBox(sNumber & " trouvée, have fun", MsgBoxStyle.Information)
End Function
Private Function Searching(ByVal Path As String, ByVal FileName As String, ByVal Result As FileList) As Long
'La fonction de recherche est mise en privée car nous passerons
'par une autre fonction di module pour lancer la recherche
'avec les options sélectionnées par l'utilisateur
'Déclaration des variables locales
Dim lpFFD As WIN32_FIND_DATA
Dim hFindFile As Long
Dim lgRep As Long
Dim PathFile As String
'Lancement de la recherche demandée par la fonction StartSearching
c'est dans l'appel suivant que survient mon erreur : hFindFile = FindFirstFile(Path & FileName, lpFFD)
L'erreur est décrite comme ceci par VB.Net:
Exeption non gérée de type "System.NullReferenceException" c'est produite dans Recherche2.exe
Info supplémentaires:
La référence d'objet n'est pas définie à une instance d'objet.
Voilà, si tu sais m'adier, ce serait vraiment sympas car sans cela, je sais pas si je saurai continuer le projet, car il n'est pas encore fini, il manque une grosse partie de gestion dans la form et une partie de la fonction que je sais pas tester avant d'avoir réglé cette erreur de m... @:
Enfin, si tu vois ce que c'est, merci de me dire comment passer ça ;)
Bonne prog à tous ;)
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 28 mars 2005 à 11:05
Peux-tu m'envoyer ton code, là où tu as des erreurs ?
Pour mon prog, jm'y penche de suite
et je te re-dis cela !
:oD
A#
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 27 mars 2005 à 22:09
oula, combien de temps, en faite, je suis nouveau, je mis suis mis il y a 5 ou 6 mois plus ou moins mais à une heure peut être par jour, sans me casser la tête.
Mais en faite je programmais souvent en VB6 :s
Mais tu pourrais encore m'aider un coup? Je cherche à utiliser les API FindFirstFile, FindNextFile et FindClose dans le .Net, mais voilà , il me fait une erreur et je n'arrive pas à trouver la cause, c du coude de VB6 remis plus ou moins en .Net aussi :s
Enfin, merci de cette sources, mais je me demande si tu ne devrais pas revérifier pour l'utilisation de refusionnage car ava pas chez moi, bouton grisé :'( et merci pour l'aide si tu sais (y)
Allez, je go, bonne prog à tous
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 27 mars 2005 à 14:57
Merci beaucoup de tes compliments, cela me touche grandement !
Je développe depuis maintenant 3 ans !
Je suis un passionné de l'environnement .NET !
Et toi, depuis combien de temps t'y est tu mis ?
@ #
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 27 mars 2005 à 13:21
Salut Ivanoff1,
Bien alors, je me suis peut être trompé, je vais regarder a de plus près.
En tout les cas, nikel comme prog, franchement, tu développe depuis longtemps?
Si tu as encor des truc dans le style, mes les sur le site, c nikel pour les néhophite comme moi.
@++
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 27 mars 2005 à 13:01
si tel est le cas, je m'en escuse !
mais je crois l'avoir implémenter, sinon cela semble tout de même génant.
Avec mes remerciements !!
A #
The_programmeur
Messages postés13Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention29 mars 2005 27 mars 2005 à 03:23
Nice soft ;)
Je viens de tester le prog, j'ais juste une question (pas encore regardé les sources :s), pourquoi ne pas avoir implémenté la reconstitution du fichier découper?
Enfin, je vais me mettre à raegarder plus en détaile tantot, mais c domage, cela manque à l'exemple, le prenez pas mal, mais j'aime voir ce que je fais puis foullier dans le code et en tirer enseignement :d
Enfin, très bon truc, peut être util à l'ocase, si je modifie, je poste les modif et vous préviens ;)
Sur ce, bonne prog @ tous ;)
++
123samsonov123
Messages postés1Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention10 janvier 2005 10 janv. 2005 à 12:04
Enfin bon, jouer avec une clé de 128 pour un film de 1giga c'est pas très pratique :-) mais disons que pour le scinder en deux pour le graver sur CD c'est bien intéressant.
ivanoff1
Messages postés99Date d'inscriptionlundi 14 octobre 2002StatutMembreDernière intervention28 décembre 2005 9 janv. 2005 à 18:56
Un petit exemple :
je veu decouper mon film de 1 giga
et le mettre sur ma clé de 128,
n'estce pas intéressant ?
cs_arcollet
Messages postés31Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention13 avril 2008 9 janv. 2005 à 18:52
Enlevez moi un doute, as t on encore besoin de découper un fichier aujourd'hui ? Utilise-t-on encore les bonne vieilles disquettes ?
Amicalement,
Denis
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 7 janv. 2005 à 10:31
29 mars 2005 à 14:57
Donc, si dans ton cas, c'est aussi le cas, je suis désespéré
mai je ne m'arreterai pas là !!
29 mars 2005 à 14:54
essaye celui-ci :
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx#.NET%20Framework%202.0%20Beta%20SDK%20and%20Redistributable
Par contre, j'ai l'impression que ton prog boucle à l'infini, non ?
Car j'ai mis des msgbox avant et après, et il n'arrive pas à la fin (juste avant le retour de ta fonction)
29 mars 2005 à 14:14
jte jure jvien de lancer le projet
et il fonctionne très bien
je vais fouillé plus en détail
et je te tiens au courant
29 mars 2005 à 14:09
Si oui, peux tu me dire ou je puis trouver ce Framwork?
Merci d'avance ;)
29 mars 2005 à 13:56
voilà, je viens de refaire un projet avec ton code, je l'ai mis sur un module avec un bouttons pour lanncer la recherche.
Mais j'ais toujours le même problème :s
Merci pour la source, je test ça et te dis quoi ;)
Bonne prog ;)
@++
29 mars 2005 à 13:50
Tiens moi au courant si cela fonctionne !!
@ #
29 mars 2005 à 13:14
Mais je viens de copier ton code, je vais le tester immédiatement, je te remercie.
Pour ta source, tu l'as réactualisée sur CodeSource? Puis je la preprendre?
Merci de tout en tout les cas ;)
Bonne prog ;)
@++
29 mars 2005 à 12:48
'Dans ce module ce trouve la déclaration des API de Windows
'que j'utilise pour effectuer la recherche ainsi que les
'déclarations utiles à ces même API de Windows plus les
'fonctions utilisées pour la recherches
'Les strucutres de données
Public Structure FILETIME 'Structure définissant la date et l'heure du premier acces et du dernière acces au fichier
Public dwLowDateTime As Long
Public dwHightDateTime As Long
End Structure
Public Structure WIN32_FIND_DATA 'Structure utilisée pour récupérée une partie des informations sur les fichiers
Public dwFileAttributes As Long
Public ftCreationTime As FILETIME
Public ftLastAccessTime As FILETIME
Public ftLastWirteTime As FILETIME
Public nFileSizeHigth As Long
Public nFileSizeLow As Long
Public dwReserved0 As Long
Public dwReserved1 As Long
Public cFileName As String
Public cAlternate As String
End Structure
'Structure personnel ;)
Public Structure FileList
Public File() As WIN32_FIND_DATA
Public Path() As String
Public Number As Long
End Structure
'Les constantes utilisée par le module de code
Private Const MaxPath = 256 'Taille du chemin d'acces
Private Const INVALIDE_HANDLE_VALUE = -1 'Indicateur d'erreur ou de réussite
Private Const FILE_ATTRIBUTE_READONLY = &H1 'Indique un fichier en lecture seul
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 'Indique un fichier caché
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 'Indique un fichier système
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10 'Indique un dossier
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 'Indique un fichier archivé
Private Const FILE_ATTRIBUTE_NORMAL = &H80 'Indique un fichier normal
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100 'Indique un fichier temporaire
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800 'Indique un fichier compressé différament que FILE_ATTRIBUTE_ARCHIVE
'Les API
'Déclaration de la fonction FindFirstFile contenue dans Kernel32.dll
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindNextFile contenue dans Kernel32.dll
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFaile As Long, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindClose contenue dans Kernle32.dll
Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'Voilà pour la déclaration des API de Windows, reste à les utilisées
Public Sub StartSearching(ByVal sPath As String, ByVal sFileType As String)
'Fonction de lancement de la recherche
'déclaration des variables locales
Dim sResult As New FileList
Dim sNumber As Long
Dim I
'Lancement de la recherche
sNumber = Searching(sPath, sFileType, sResult)
MsgBox(sNumber & " trouvée, have fun", MsgBoxStyle.Information)
End Sub
Private Function Searching(ByVal Path As String, ByVal FileName As String, ByRef Result As FileList) As Long
'La fonction de recherche est mise en privée car nous passerons
'par une autre fonction di module pour lancer la recherche
'avec les options sélectionnées par l'utilisateur
'Déclaration des variables locales
Dim lpFFD As New WIN32_FIND_DATA
System.Windows.Forms.MessageBox.Show(lpFFD.ftCreationTime.dwHightDateTime)
Dim hFindFile As Long
Dim lgRep As Long
Dim PathFile As String
'Lancement de la recherche demandée par la fonction StartSearching
hFindFile = FindFirstFile(Path & FileName, lpFFD)
If hFindFile <> INVALIDE_HANDLE_VALUE Then
Do
'On mémorise ...
Result.Number = Result.Number + 1
ReDim Preserve Result.Path(Result.Number)
ReDim Preserve Result.File(Result.Number)
Result.Path(Result.Number) = Path
Result.File(Result.Number) = lpFFD
'On initialise les variables texte de lpFFD
lpFFD.cAlternate = "0"
lpFFD.cFileName = "0"
Loop Until FindNextFile(hFindFile, lpFFD) = 0
End If
FindClose(hFindFile)
Searching = Result.Number
End Function
29 mars 2005 à 12:45
et tout à bien fonctionner
8o|
Sinon j'ai modifié ma source
Et c'est vrai qu'il était difficile de revenir après avoir choisi une des deux actions
Merci encore !
29 mars 2005 à 12:35
29 mars 2005 à 12:34
J'aimerais vraiment t'aider !
29 mars 2005 à 12:05
Voilà, je viens de faire les petites modif que tu me connseillais, je lance un pas à pas et ... PAN ... Même erreur, toujours la référence d'objet qui n'est pas définie à une instance d'objet :'(
Pour ce qui est du langague objet, je supose que tu parle de la POO? Si oui, je répond de suite non, je connais pas trops cette utilisation, je l'employais très peux en faite ou alors sans m'en rendre conte :s
Bon, je vais me remettre un peux sur le projet, j'espère avoir d'autre info utile, mais je voudrais dire une chose:
Autant qu'en VB6 je faisais cette fonction facilement qu'en .Net, je n'arrive presque à rien fair :s Le langague est trops différent :s
Enfin, pas grave, on réapprendra ça ;)
Merci des infos ;)
Bonne prog à tous,
@++
29 mars 2005 à 11:26
Si c'est le cas, et bien cela ne fonctionnera jamais car, tu passe le paramètre en valeur, alors qu'ill faudrait le passer en ByRef. Si je me suis trompé, escuse moi...
En tout cas ce qui est sur, c'est que ton sResult n'est pas instancié !
Donc tu as obligatoirement cette erreur :
"System.NullReferenceException"
Il faut faire :
Dim sResult as New FileList
Dans ta méthode : StartSearching
De plus, pour que la méthode qui te pose problème fonctionne, il faut faire :
Dim lpFFD As New WIN32_FIND_DATA
et non
Dim lpFFD As WIN32_FIND_DATA
dans ta méthode, Searching
Car il faut réservé l'espace mémoire pour cette api (c'est tout de même une classe)
Connais-tu le langage objet ?
Sinon, il y a quelques erreurs selon moi, non ?
Tout d'abord ta méthode StartSearching est une procédure, n'est ce pas ?
Car tu écrit "function", cela me semble incorrecte, il vaut mieux la déclarer Sub ...
Je pense qu'avec ceci, tu n'auras plus d'erreur de ce type :oD
Si tu as d'autres questions n'hésite pas !!
Have a good prog !
29 mars 2005 à 01:49
Dans les variables Path as FileName j'ais mis respectivement la valeur "d:" et "*.*".
Donc:
Path = "d:"
FileName = "*.*"
Merci encor ;)
Bonne prog à tous ;)
@++
29 mars 2005 à 01:47
Ensuite, il faut que tu sache que le code VB6 vient du site http://docvb.free.fr.
Enfin, voici le code du module, préparé comme pour envoyer (amsi pas encore fini :s) :
Module declarationapi
'Dans ce module ce trouve la déclaration des API de Windows
'que j'utilise pour effectuer la recherche ainsi que les
'déclarations utiles à ces même API de Windows plus les
'fonctions utilisées pour la recherches
'Les strucutres de données
Public Structure FILETIME 'Structure définissant la date et l'heure du premier acces et du dernière acces au fichier
Public dwLowDateTime As Long
Public dwHightDateTime As Long
End Structure
Public Structure WIN32_FIND_DATA 'Structure utilisée pour récupérée une partie des informations sur les fichiers
Public dwFileAttributes As Long
Public ftCreationTime As FILETIME
Public ftLastAccessTime As FILETIME
Public ftLastWirteTime As FILETIME
Public nFileSizeHigth As Long
Public nFileSizeLow As Long
Public dwReserved0 As Long
Public dwReserved1 As Long
Public cFileName As String
Public cAlternate As String
End Structure
'Structure personnel ;)
Public Structure FileList
Public File() As WIN32_FIND_DATA
Public Path() As String
Public Number As Long
End Structure
'Les constantes utilisée par le module de code
Private Const MaxPath = 256 'Taille du chemin d'acces
Private Const INVALIDE_HANDLE_VALUE = -1 'Indicateur d'erreur ou de réussite
Private Const FILE_ATTRIBUTE_READONLY = &H1 'Indique un fichier en lecture seul
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 'Indique un fichier caché
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 'Indique un fichier système
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10 'Indique un dossier
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 'Indique un fichier archivé
Private Const FILE_ATTRIBUTE_NORMAL = &H80 'Indique un fichier normal
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100 'Indique un fichier temporaire
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800 'Indique un fichier compressé différament que FILE_ATTRIBUTE_ARCHIVE
'Les API
'Déclaration de la fonction FindFirstFile contenue dans Kernel32.dll
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindNextFile contenue dans Kernel32.dll
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFaile As Long, ByVal lpFindFileData As WIN32_FIND_DATA) As Long
'Déclaration de la fonction FindClose contenue dans Kernle32.dll
Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'Voilà pour la déclaration des API de Windows, reste à les utilisées
Public Function StartSearching(ByVal sPath As String, ByVal sFileType As String)
'Fonction de lancement de la recherche
'déclaration des variables locales
Dim sResult As FileList
Dim sNumber As Long
Dim I
'Lancement de la recherche
sNumber = Searching(sPath, sFileType, sResult)
MsgBox(sNumber & " trouvée, have fun", MsgBoxStyle.Information)
End Function
Private Function Searching(ByVal Path As String, ByVal FileName As String, ByVal Result As FileList) As Long
'La fonction de recherche est mise en privée car nous passerons
'par une autre fonction di module pour lancer la recherche
'avec les options sélectionnées par l'utilisateur
'Déclaration des variables locales
Dim lpFFD As WIN32_FIND_DATA
Dim hFindFile As Long
Dim lgRep As Long
Dim PathFile As String
'Lancement de la recherche demandée par la fonction StartSearching
hFindFile = FindFirstFile(Path & FileName, lpFFD)
If hFindFile <> INVALIDE_HANDLE_VALUE Then
Do
'On mémorise ...
Result.Number = Result.Number + 1
ReDim Preserve Result.Path(Result.Number)
ReDim Preserve Result.File(Result.Number)
Result.Path(Result.Number) = Path
Result.File(Result.Number) = lpFFD
'On initialise les variables texte de lpFFD
lpFFD.cAlternate = "0"
lpFFD.cFileName = "0"
Loop Until FindNextFile(hFindFile, lpFFD) = 0
End If
FindClose(hFindFile)
Searching = Result.Number
End Function
End Module
c'est dans l'appel suivant que survient mon erreur : hFindFile = FindFirstFile(Path & FileName, lpFFD)
L'erreur est décrite comme ceci par VB.Net:
Exeption non gérée de type "System.NullReferenceException" c'est produite dans Recherche2.exe
Info supplémentaires:
La référence d'objet n'est pas définie à une instance d'objet.
Voilà, si tu sais m'adier, ce serait vraiment sympas car sans cela, je sais pas si je saurai continuer le projet, car il n'est pas encore fini, il manque une grosse partie de gestion dans la form et une partie de la fonction que je sais pas tester avant d'avoir réglé cette erreur de m... @:
Enfin, si tu vois ce que c'est, merci de me dire comment passer ça ;)
Bonne prog à tous ;)
@++
28 mars 2005 à 11:05
Pour mon prog, jm'y penche de suite
et je te re-dis cela !
:oD
A#
27 mars 2005 à 22:09
Mais en faite je programmais souvent en VB6 :s
Mais tu pourrais encore m'aider un coup? Je cherche à utiliser les API FindFirstFile, FindNextFile et FindClose dans le .Net, mais voilà , il me fait une erreur et je n'arrive pas à trouver la cause, c du coude de VB6 remis plus ou moins en .Net aussi :s
Enfin, merci de cette sources, mais je me demande si tu ne devrais pas revérifier pour l'utilisation de refusionnage car ava pas chez moi, bouton grisé :'( et merci pour l'aide si tu sais (y)
Allez, je go, bonne prog à tous
@++
27 mars 2005 à 14:57
Je développe depuis maintenant 3 ans !
Je suis un passionné de l'environnement .NET !
Et toi, depuis combien de temps t'y est tu mis ?
@ #
27 mars 2005 à 13:21
Bien alors, je me suis peut être trompé, je vais regarder a de plus près.
En tout les cas, nikel comme prog, franchement, tu développe depuis longtemps?
Si tu as encor des truc dans le style, mes les sur le site, c nikel pour les néhophite comme moi.
@++
27 mars 2005 à 13:01
mais je crois l'avoir implémenter, sinon cela semble tout de même génant.
Avec mes remerciements !!
A #
27 mars 2005 à 03:23
Je viens de tester le prog, j'ais juste une question (pas encore regardé les sources :s), pourquoi ne pas avoir implémenté la reconstitution du fichier découper?
Enfin, je vais me mettre à raegarder plus en détaile tantot, mais c domage, cela manque à l'exemple, le prenez pas mal, mais j'aime voir ce que je fais puis foullier dans le code et en tirer enseignement :d
Enfin, très bon truc, peut être util à l'ocase, si je modifie, je poste les modif et vous préviens ;)
Sur ce, bonne prog @ tous ;)
++
10 janv. 2005 à 12:04
9 janv. 2005 à 18:56
je veu decouper mon film de 1 giga
et le mettre sur ma clé de 128,
n'estce pas intéressant ?
9 janv. 2005 à 18:52
Amicalement,
Denis
7 janv. 2005 à 10:31