Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1471 connectés 

 

 

 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6
Auteur Sujet :

[FAQ VB] La FAQ Visual Basic 6.0

n°770539
drasche
Posté le 20-06-2004 à 22:40:46  profilanswer
 

Reprise du message précédent :
en cherchant sur google, tu trouveras même des implémentations en VB (ptet avec un peu des API) mais ça existe :)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
mood
Publicité
Posté le 20-06-2004 à 22:40:46  profilanswer
 

n°787369
veryfree
Posté le 05-07-2004 à 21:40:43  profilanswer
 

drasche a écrit :

Pourquoi dit-on que VB ne gère pas les objets?
 
La question n?est pas exacte:


 
pourquoi tu as des ? a la place des ' ?
 
 
drapal sinon :o
 
 
vous avez un site de reférence pour VBA excel ?


Message édité par veryfree le 05-07-2004 à 21:41:33
n°787410
mareek
Et de 3 \o/
Posté le 05-07-2004 à 22:43:38  profilanswer
 

veryfree a écrit :

pourquoi tu as des ? a la place des ' ?


JoceBug [:spamafote]

veryfree a écrit :


drapal sinon :o
 
 
vous avez un site de reférence pour VBA excel ?


www.vbfrance.com


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°787421
drasche
Posté le 05-07-2004 à 22:57:54  profilanswer
 

veryfree a écrit :

pourquoi tu as des ? a la place des ' ?


ptain y manquait plus que ça [:kiki]
(vais devoir éditer tous mes posts [:sisicaivrai])


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°787442
veryfree
Posté le 05-07-2004 à 23:21:09  profilanswer
 


 
j'y vois pas de tut, c'est normal :o ?

n°788017
veryfree
Posté le 06-07-2004 à 13:45:30  profilanswer
 

dite vous pouvez me dire ce qui cloche avec ma procedure ?
 
 

Sub Macro2()
Dim mail, request, CurrRow, LastRow
Close #1
campagneID = InputBox("Campagne ID" )
Open "request" & campagneID & ".TXT" For Output As #1
LastRow = Application.CountA(ActiveSheet.Range("A:A" ))
For Each Cell In Range("A1:A" & LastRow)
    mail = Cell.Value
Print #1, mail  
Next Cell
Close #1
MsgBox "Done"
End Sub


 
le probleme c'est que le fichier n'est pas crée , ca doit surement etre tout con mais vu que je suis une bouse :/
 
Merci de votre aide

n°788025
drasche
Posté le 06-07-2004 à 13:50:10  profilanswer
 

fais un topic [:joce]
(j'y connais pas grand chose à VBA :o)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°788040
veryfree
Posté le 06-07-2004 à 14:01:25  profilanswer
 

drasche a écrit :

fais un topic [:joce]
(j'y connais pas grand chose à VBA :o)


 
ok, mais je crois que cette saloprie d'excel les a effacé alors que j'ai fait plein de control + S :'(
 
 
ou elles peuvent etre  :cry:

n°788347
mareek
Et de 3 \o/
Posté le 06-07-2004 à 17:30:58  profilanswer
 

veryfree a écrit :

dite vous pouvez me dire ce qui cloche avec ma procedure ?
 
 

Sub Macro2()
Dim mail, request, CurrRow, LastRow
Close #1
campagneID = InputBox("Campagne ID" )
Open "request" & campagneID & ".TXT" For Output As #1
LastRow = Application.CountA(ActiveSheet.Range("A:A" ))
For Each Cell In Range("A1:A" & LastRow)
    mail = Cell.Value
Print #1, mail  
Next Cell
Close #1
MsgBox "Done"
End Sub


 
le probleme c'est que le fichier n'est pas crée , ca doit surement etre tout con mais vu que je suis une bouse :/
 
Merci de votre aide


pourquoi tu commence ta procedure par un "Close #1" ?  :??:  
Je sais pas comment ça marche en VBA, mais en VB on fait comme ça:

Code :
  1. Public Sub SaveStrToFile(sStrToSave As String, sFilePath As String)
  2.  Dim iFile As Integer
  3.  
  4.  iFile = FreeFile
  5.  
  6.  Open sFilePath For Output As #iFile
  7.  
  8.  Print #iFile, sStrToSave
  9.  
  10.  Close #iFile
  11. End sub


Message édité par mareek le 07-12-2007 à 18:37:37

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°788408
veryfree
Posté le 06-07-2004 à 18:12:22  profilanswer
 

mareek a écrit :

pourquoi tu commence ta procedure par un "Close #1" ?  :??:  
Je sais pas comment ça marche en VBA, mais en VB on fait comme ça:

Code :
  1. Public Sub SaveStrToFile(sStrToSave As String, sFilePath As String)
  2.   Dim iFile As Integer
  3.  
  4.   iFile = FreeFile
  5.  
  6.   Open sFilePath For Output As #iFile
  7.  
  8.   Print #iFile, sStrToSave
  9.  
  10.   Close #iFile
  11. End sub



c'est bon en fait j'ai crée un topic et j'ai eu ma solution ;)
 
pour le "Close #1" j'ai fait avec ce que j'ai trouvé sur le net [:mmmfff]
 
 :hello:

mood
Publicité
Posté le 06-07-2004 à 18:12:22  profilanswer
 

n°788420
mareek
Et de 3 \o/
Posté le 06-07-2004 à 18:43:04  profilanswer
 

veryfree a écrit :

c'est bon en fait j'ai crée un topic et j'ai eu ma solution ;)
 
pour le "Close #1" j'ai fait avec ce que j'ai trouvé sur le net [:mmmfff]
 
 :hello:


Le net cai le mal :o
 
La moitié des sources qu'on y trouve ne passent même pas la compilation :o


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°788427
veryfree
Posté le 06-07-2004 à 18:53:45  profilanswer
 

oué, enfin du VB j'en fait pas tout les jours si ca peux te consoler [:veryfree]
 
sinon j'ai jamais eu de prob avec les sources java trouvé sur le net :p
 
 
 
 
 
 

n°817795
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 09:23:18  profilanswer
 

Juste une petite question,  
 
Comment on peut faire pour faire tourner du code en arrière plan sous vb sans que ça n'empêche l'exécution du programme...
 
 
 
Au fait, Bonne vacance à tout ceux qui en ont !


---------------
C17
n°818014
drasche
Posté le 09-08-2004 à 13:57:48  profilanswer
 

ah tu veux dire du multithread? [:tinostar]
en VB, oublie ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818022
ixemul
Nan mais sans blague ! ⚡
Posté le 09-08-2004 à 14:04:10  profilanswer
 

drasche a écrit :

ah tu veux dire du multithread? [:tinostar]
en VB, oublie ;)


 
en VB 6, oublie ;)
 
 
[:aloy]

n°818027
drasche
Posté le 09-08-2004 à 14:12:19  profilanswer
 

certes :o
mais cette FAQ est 100% dédiée à VB6 en fait :o (faudrait que je le précise [:figti])


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818085
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 14:46:16  profilanswer
 

C'est vraiment pas possible? j'en ai assez besoin en fait...
 
Une soluce assez bancale serait d'utiliser un controle Timer mais bon, j'ai pas envie d'en arriver là...


---------------
C17
n°818096
drasche
Posté le 09-08-2004 à 14:50:25  profilanswer
 

C17 a écrit :

C'est vraiment pas possible? j'en ai assez besoin en fait...
 
Une soluce assez bancale serait d'utiliser un controle Timer mais bon, j'ai pas envie d'en arriver là...


c'est possible mais c'est un peu le Saint-Graal du VB. Très peu de gens sont parvenus à implémenter le multithreading en VB. Moi-même, je n'y arrive pas: j'ai pas le niveau [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818109
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 14:57:06  profilanswer
 

J'ai trouvé une source sur VBFrance qui le faisait, j'ai pas vraiment eu le temps de la regarder en détail mais ça m'a l'air assez complexe!
 
Je l'ai testé et ça me semble bien fonctionner quand même


---------------
C17
n°818112
drasche
Posté le 09-08-2004 à 14:59:28  profilanswer
 

c'est TRES complexe :jap:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818118
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 15:01:44  profilanswer
 

qu'est-ce que tu penses d'utiliser un Timer en dernier recours?


---------------
C17
n°818126
drasche
Posté le 09-08-2004 à 15:08:01  profilanswer
 

Ca dépend un peu du contexte, et de toute façon, ça bloquera quand même par intermitence donc je ne trouve pas que ça soit si bon que ça :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818129
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 15:10:53  profilanswer
 

En fait, au démarage du programme je voudrai lancer une fonction de recherche qui prend assez bien de temps, mais sans que ça ne bloque l'utilisateur pendant ce temps là, après, j'en aurais plus besoin...


---------------
C17
n°818132
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 15:12:23  profilanswer
 

Une fois entré dans la fonction du timer, je peux toujours mettre le timer hors jeu pour que ça ne boucle pas...


---------------
C17
n°818133
C17
-$$ W A N T E D $$-
Posté le 09-08-2004 à 15:13:37  profilanswer
 

... Mais ça m'étonnerais que mon responsable apprécie beaucoup cette soluce...


---------------
C17
n°818136
ixemul
Nan mais sans blague ! ⚡
Posté le 09-08-2004 à 15:16:38  profilanswer
 

C17 a écrit :

J'ai trouvé une source sur VBFrance qui le faisait, j'ai pas vraiment eu le temps de la regarder en détail mais ça m'a l'air assez complexe!
 
Je l'ai testé et ça me semble bien fonctionner quand même


 
Ca marche bien sous l'interpreter, mais c'est carrement instable une fois compilé... (Les appels d'api permettant le multitreading semblent TRES mal gérés par VB). La seul solution de stabilité etant de réaliser des thread ne pouvant communiquer entre eux soit une utilisation non viable... :/

n°818150
drasche
Posté le 09-08-2004 à 15:28:24  profilanswer
 

bin faut dire au départ, VB n'était pas prévu du tout pour les appels d'API, c'est une feature arrivée plus tard :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°818389
mareek
Et de 3 \o/
Posté le 09-08-2004 à 19:28:20  profilanswer
 

C17 a écrit :

... Mais ça m'étonnerais que mon responsable apprécie beaucoup cette soluce...


D'après la description succinte que tu donnes de ton problème, ça semble être la seule solution.
Si la fonction de recherche est le dernier bout de code que tu execute avant de laisser la main à l'utilisateur et que le resultat de ta recherche n'est pas nécessaire pour la suite, il te suffit de placer l'instruction "DoEvents" dans la boucle de ta fonction de recherche pour que l'utilisateur puisse vaquer tranquillement à ses occupations. Attention aux conflits que pourrait occasionner les actions de l'utilisateur (modification de données partagées, fermeturede l'appli avant la fin de la fonction, etc.)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°818771
C17
-$$ W A N T E D $$-
Posté le 10-08-2004 à 11:41:33  profilanswer
 

Ok, merci, je fais ça alors!


---------------
C17
n°820215
C17
-$$ W A N T E D $$-
Posté le 11-08-2004 à 12:51:15  profilanswer
 

Une autre question, vous savez comment on peut récupérer une image d'une frame dans une vidéo?
 
C'est possible avec les composants média player?


---------------
C17
n°820217
drasche
Posté le 11-08-2004 à 12:52:15  profilanswer
 

trop pointu pour la FAQ :D
restons génériques :o
 
fais un topic, tu auras plus de chances ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°829365
C17
-$$ W A N T E D $$-
Posté le 23-08-2004 à 11:36:58  profilanswer
 

Juste une question... Vous savez ou je peux trouver un petit tuto très simple sur vb, mais vraiment les bases,  
 
..C'est pour une personne qui n'a jamais fait de la programmation...


---------------
C17
n°830197
mareek
Et de 3 \o/
Posté le 23-08-2004 à 22:53:00  profilanswer
 

C17 a écrit :

Juste une question... Vous savez ou je peux trouver un petit tuto très simple sur vb, mais vraiment les bases,  
 
..C'est pour une personne qui n'a jamais fait de la programmation...


Dis lui d'apprendre la programmation mais surtout pas avec VB.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°830199
drasche
Posté le 23-08-2004 à 22:54:43  profilanswer
 

mareek a écrit :

Dis lui d'apprendre la programmation mais surtout pas avec VB.


[:plusun]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°855368
mareek
Et de 3 \o/
Posté le 22-09-2004 à 00:51:55  profilanswer
 

Question déchargement mémoire:
Dans les cas extrèmes, mon appli prends plus de 100Mo en RAM répartis dans plusieurs centaines de milliers d'objets qui s'inter-référencent entre eux. J'ai remarqué plusieurs détails intéressant à la fermeture de l'appli:
-sous Windows 2000/XP la fermeture de l'appli est quasi instantanée
-sous windows 98 la fenêtre disparait mais le processus continue de tourner en occupant toujours la même quantité de ram et en occupant 100% du CPU pendant de nombreuses minutes avant de provoquer une erreur.
 
Après plusieurs test, j'ai découvert que le problème venai du fait que mon appli était pleine de références circulaires. Or si ça n'a pas l'air de gener Win 2000/XP, Win98 est complètement largué dans ce genre de situation. Après quelques recherches sur le net, la seule solution acceptable que j'ai trouvé est de libérer explicitement toutes les références de chaque objets avant de fermer l'appli.
Cette méthode fonctionne dans le sens ou l'appli se ferme proprement et libère la mémoire qu'elle occupait mais comporte pas mal d'inconvénients:
-La fermeture de l'appli n'est pas instantanée, la libération de la mémoire prends un certain temps.
-Pendant sa fermeture, l'appli prends 100% du CPU
-Le temps que prends la fermeture  de l'appli n'est pas proportionnel à la place prise en mémoire ou au nombre d'objets instancié. avec ~10 000 objets l'appli met 30 secondes à se fermer, avec ~150 000 objets l'appli met 45 minutes (!) pour se fermer.  
 
La solution que j'ai trouvé à ce problème est certe peu élégante, mias radicale : je suicide mon appli via les fonctions de l'API windows (je posterait le code demain si j'y pense). C'est radical, l'appli se ferme instantanémént, la mémoire est libérée et le processus disparait de la liste des taches. Pour l'instant, je ne vois pas d'inconvénients à ma méthode mais si vous avez entendu parler d'effets  pervers causé par la terminaison brutale d'un processus, je suis tout ouie.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°855371
drasche
Posté le 22-09-2004 à 01:00:58  profilanswer
 

bin perso je préfère tout libérer à la main :spamafote:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°855372
mareek
Et de 3 \o/
Posté le 22-09-2004 à 01:03:56  profilanswer
 

drasche a écrit :

bin perso je préfère tout libérer à la main :spamafote:


moi aussi, mais 45 minutes pour fermer une appli c'est trop long :/


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°855382
drasche
Posté le 22-09-2004 à 01:47:20  profilanswer
 

Ca me paraît très long, même pour 150000 objets (j'ai jamais testé sous Win98 donc soit :D)
 
A ce moment là, faudrait ptet libérer des ressources quand lesdits objets sont pas utilisés. Je suppose que ça a quelque chose à voir avec des bases de données?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°855455
mareek
Et de 3 \o/
Posté le 22-09-2004 à 10:07:15  profilanswer
 

le code:
 

Code :
  1. Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'API de fermeture de Process
  2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long 'Ouverture de Process
  3. Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long 'Ouverture de Process
  4.  
  5. Private Sub SuicideProcess()
  6.  Dim ProcessId As Long
  7.  Dim hProcess As Long
  8.  
  9.  'On récupère l'ID du processus
  10.  ProcessId = GetCurrentProcessId()
  11.  'On récupère un handle sur le processus
  12.  hProcess = OpenProcess(1, False, ProcessId)
  13.  'On kill le processus
  14.  TerminateProcess hProcess, 4
  15.  
  16. End Sub


Message édité par mareek le 07-12-2007 à 18:39:00

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°855461
mareek
Et de 3 \o/
Posté le 22-09-2004 à 10:12:42  profilanswer
 

drasche a écrit :

Ca me paraît très long, même pour 150000 objets (j'ai jamais testé sous Win98 donc soit :D)


Si tu as une grosse appli en VB et un poste en Win98 sous la main, je te conseille de faire le test, c'est consternant :(
 

drasche a écrit :


A ce moment là, faudrait ptet libérer des ressources quand lesdits objets sont pas utilisés. Je suppose que ça a quelque chose à voir avec des bases de données?


pas possible :/


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°855660
mareek
Et de 3 \o/
Posté le 22-09-2004 à 14:42:08  profilanswer
 

Est-ce qu'il y a un moyen de savoir dans le code si on est en mode debug ? (à part faire un debu.assert)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6

Aller à :
Ajouter une réponse
 

Sujets relatifs
[BASIC] comment "dérouler" les GOTO ???Mysql et Visual Basic 6.0 - Connecter les 2 ?
[Outil de programmation] Visual Studio .net 2002 pro frVisual c++ 6.0 questions ?
FAQ programmationvisual C++ cours/tutoriels
[BASIC] Exporter une donnée de la base de registre[VISUAL STUDIO 6]Warning bizarre - conseil
[HELP] turbo basic :p 
Plus de sujets relatifs à : [FAQ VB] La FAQ Visual Basic 6.0


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR