A L AIDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEE MAYDE MAYDE KELKUN PEUT IL M AIDER?????§

Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004 - 5 juil. 2004 à 16:49
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004 - 7 juil. 2004 à 13:41
Bonjour a toutes et a tous !
je suis dans une impasse, une belle galère....
je suis actuellement en formation et après avoir réussi a faire l'appli que mon superieur me demandait en VB6 au bout de 4 mois (j'avais rarement touché un pc avant d'etre ici), celui ci desire maintenant que je la transcrive en java et la je nage dans un ocean....
est ce que quelqu'un aurait un peu de temps a me consacrer
si oui voila les sources de mon appli en VB6 composée uniquement de deux modules de classes:

1er module "Netsend"
----------------------------------------------------------------
Public Function GetParameter(ByVal sFile As String, _
ByVal sTopic As String, _
ByVal sItem As String, _
ByRef vValue As Variant, _
ByRef lReturn As Long, _
ByRef sMsg As String, _
Optional vDefault As Variant) As Long
On Error GoTo ERR_GetParameter

Dim sBuffer As String * 256 ' Buffer pour GetPrivateProfileString
Dim sValue As String
Dim iValRetour As Integer ' Valeur retour des fonctions
'-----------------------------------------------------------------------

lReturn = ERROR_SUCCESS

iValRetour = GetPrivateProfileString(sTopic, sItem, vbNullString, sBuffer, 256, sFile)
If iValRetour = 0 Then
If Not IsMissing(vDefault) Then
vValue = vDefault
Else
lReturn = FM_MISS_ITEM
sMsg = "File:" & sFile & "|Topic:" & sTopic & "|Item:" & sItem & "|"
End If
Else
sValue = Left$(sBuffer, iValRetour)
'cast
vValue = sValue
End If

'-----------------------------------------------------------------------
EXIT_GetParameter:
'-----------------------------------------------------------------------
GetParameter = lReturn
Exit Function

'-----------------------------------------------------------------------
ERR_GetParameter:
'-----------------------------------------------------------------------
lReturn = Err.Number
sMsg = "Topic:" & sTopic & "|Item:" & sItem & "|" & Err.Description
Resume EXIT_GetParameter

End Function

Public Function Lecture_INI(ByVal strKey As String, ByVal StrITEM As String) As String

Dim LngResult As Long
Dim sValue As String
Dim LngReturn As Long
Dim sMsg As String

On Error Resume Next

LngReturn = GetParameter(App.Path + "\renan.ini", strKey, StrITEM, sValue, LngReturn, sMsg)
'appel la fonction GetParameter

Lecture_INI = CStr(sValue)*

End Function

----------------------------------------------------------------------

Public Sub Mail()

Dim Session As Object
Dim db As Object
Dim doc As Object
Dim Fichier As Object
Dim UserList As String
Dim user_list As String
Dim NetSend As String
Dim temp() As String
Dim i As Integer

UserList = Lecture_INI("NetSend", "user_list")
'on appelle la fonction Lecture_INI pour récupérer la liste des destinataires

temp = Split(UserList, ", ")
'on stocke chaque destinataire séparé par une virgule dans une variable différente => (tableau)

For i = 0 To UBound(temp)
'Début boucle For, la fonction ubound(temp) renvoie le dernier index
du tableau temp

UserList = temp(i) 'on charge la valeur prise pour le destinataire

Set Session = CreateObject("Notes.NotesSession")
'creation d'un objet Session Notes

Set db = Session.GETDATABASE("", UserList)
'incorpore la liste des destinataires à la session

Call db.OPENMAIL 'appel l'ouverture du mail

Set doc = db.CREATEDOCUMENT() 'création du mail
With doc
.Form = "Memo"
.SendTo = UserList 'destinataire
.Subject = "nom fichier existant + chemin" 'sujet du mail.body strFolder & strFile 'corps du mail chemin du fichier
.From = Session.COMMONUSERNAME 'affichage expéditeur
.PostedDate = Now() 'date d'envoi
.SAVEMESSAGEONSEND = True 'sauvegarde le mail
End With

'Envoyer mail
doc.SEND (True)

Next i 'Fin boucle For

Set Session = Nothing
Set db = Nothing
Set doc = Nothing

End Sub
--------------------------------------------------------------------

2ème module "RechFile" (module principal)
------------------------------------------------------------------

Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
ByVal AppName As String, _
ByVal KeyName As String, _
ByVal keydefault As String, _
ByVal ReturnString As String, _
ByVal NumBytes As Long, _
ByVal FileName As String) As Long

Public strFile As String
Public strFolder As String

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Const WAIT_OBJECT_0& = 0

Private Const INFINITE = &HFFFF
Private Const ERROR_ALREADY_EXISTS = 183&

Private Const QS_HOTKEY& = &H80
Private Const QS_KEY& = &H1
Private Const QS_MOUSEBUTTON& = &H4
Private Const QS_MOUSEMOVE& = &H2
Private Const QS_PAINT& = &H20
Private Const QS_POSTMESSAGE& = &H8
Private Const QS_SENDMESSAGE& = &H40
Private Const QS_TIMER& = &H10
Private Const QS_MOUSE& = (QS_MOUSEMOVE _
Or QS_MOUSEBUTTON)

Private Const QS_INPUT& = (QS_MOUSE _
Or QS_KEY)

Private Const QS_ALLEVENTS& = (QS_INPUT _
Or QS_POSTMESSAGE _
Or QS_TIMER _
Or QS_PAINT _
Or QS_HOTKEY)

Private Const QS_ALLINPUT& = (QS_SENDMESSAGE _
Or QS_PAINT _
Or QS_TIMER _
Or QS_POSTMESSAGE _
Or QS_MOUSEBUTTON _
Or QS_MOUSEMOVE _
Or QS_HOTKEY _
Or QS_KEY)

Private Declare Function CreateWaitableTimer Lib "kernel32" _
Alias "CreateWaitableTimerA" ( _
ByVal lpSemaphoreAttributes As Long, _
ByVal bManualReset As Long, _
ByVal lpName As String) As Long

Private Declare Function SetWaitableTimer Lib "kernel32" ( _
ByVal hTimer As Long, _
lpDueTime As FILETIME, _
ByVal lPeriod As Long, _
ByVal pfnCompletionRoutine As Long, _
ByVal lpArgToCompletionRoutine As Long, _
ByVal fResume As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long

Private Declare Function MsgWaitForMultipleObjects Lib "user32" ( _
ByVal nCount As Long, _
pHandles As Long, _
ByVal fWaitAll As Long, _
ByVal dwMilliseconds As Long, _
ByVal dwWakeMask As Long) As Long

‘---------------------------------------------------------------------

Public Sub Wait(lNumberOfSeconds As Long)
Dim ft As FILETIME
Dim lBusy As Long
Dim lRet As Long
Dim dblDelay As Double
Dim dblDelayLow As Double
Dim dblUnits As Double
Dim hTimer As Long

hTimer = CreateWaitableTimer(0, True, App.EXEName & "Timer")

If Err.LastDllError = ERROR_ALREADY_EXISTS Then
' si le timer existe déjà il ne provoque pas d'erreur quand on veut l'ouvrir
' si la personne qui essaye de l'ouvrir dispose des droits d'accès nécessaires.
Else
ft.dwLowDateTime = -1
ft.dwHighDateTime = -1
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, 0)
End If

dblUnits = CDbl(&H10000) * CDbl(&H10000)
dblDelay = CDbl(lNumberOfSeconds) * 1000 * 10000

ft.dwHighDateTime = -CLng(dblDelay / dblUnits) - 1
dblDelayLow = -dblUnits * (dblDelay / dblUnits - Fix(dblDelay / dblUnits))

If dblDelayLow < CDbl(&H80000000) Then
dblDelayLow = dblUnits + dblDelayLow
End If

ft.dwLowDateTime = CLng(dblDelayLow)
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, False)

Do
lBusy = MsgWaitForMultipleObjects(1, hTimer, False, INFINITE, QS_ALLINPUT&)
DoEvents
Loop Until lBusy = WAIT_OBJECT_0

CloseHandle hTimer

End Sub

‘---------------------------------------------------------------------

Public Sub Time()

Dim diff As String
Dim min As String
Dim max As String

min = Lecture_INI("Timer", "debut_app")
'appel la fonction Lecture_INI pour connaitre l'heure de debut de l'API
max = Lecture_INI("Timer", "fin_app")
'appel la fonction Lecture_INI pour connaitre l'heure ou l'api doit s'arrêter

diff = Format(Now(), "Short Time") 'heure actuelle



If diff < min Or diff >= max Then End
'si l'heure actuelle est < min ou >= max alors arreter l'API

End Sub

‘---------------------------------------------------------------------

Public Sub Main()

CProg 'appel la procédure CProg

End Sub

‘---------------------------------------------------------------------

Public Sub CProg()

While (True) 'boucle tant que (VRAI) on effectue le corps de la boucle
Time 'appel la procédure Time afin de vérifier si la tranche horaire d'exécution est valide
strFile = "" 'on initialise strfile en le déclarant vide
While (strFile = "") 'tant que strFile est vide on effectue le corps de la boucle
CorpProg 'appel la procédure CorpProg
Wait 1 'permet de relacher le cpu en indiquant au prog de scanner le dossier une seule fois/seconde

Wend 'fin de la boucle tant que

Wait 600 'appel la procédure wait et rend actif le compteur (Wait x x: secondes ici 10 min)

Scan (strFile) 'appel la fonction scan
Wend 'fin de la boucle tant que

End Sub

‘---------------------------------------------------------------------

Public Sub CorpProg()

Dim sFileIni As String
Dim Dossier As String
Dim appli_renan As String
Dim tempo As String



sFileIni = App.Path & "\renan.ini"
'le chemin du fichier INI est identique à celui de l'application (app.path)


If sFileIni <> "" Then ' si le fichier INI existe alors
strFolder = Lecture_INI("Dossier", "appli_renan")
'lire le fichier INI (appel de la fonction Lecture_INI)
If Right$(strFolder, 1) <> "" Then strFolder = strFolder & ""
'ajoute un "" à droite si il manque

strFile = Dir(strFolder) 'nom du fichier

End If

End Sub

‘---------------------------------------------------------------------
Public Sub Scan(strFile As String)

Dim sNewFile As String

sNewFile = Dir(strFolder) 'on effectue un scan de celui-ci

If sNewFile = strFile Then
'on vérifie si le fichier n'est plus dans le dossier après le délai
Mail 'appel la procédure Mail
End If

End Sub
----------------------------------------------------------------------

voila voila
j'espere sincerement que quelqun pourra m'aider car il la veut pour la fin Aout et franchement j'ai beau lire et relire les cours et les tutos que j'ai en java je vois pas comment faire!!!
;(

COCO RI CO
COCO RI CO

12 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 juil. 2004 à 08:16
:big) Neodante :big)

Déjà un module de classe en VB et une classe en Java n'ont rien à voir si ce n'est le nom ...et c'est un truc en LotusScript ton truc pas en VB !!! Non ???
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 juil. 2004 à 08:19
:big) Neodante :big)

Non en fait ce n'est pas du LotusScript après avoir regardé plus en détail ... mais ca utilise Lotus Notes ???
@+

[Responsable www.neogamedev.com]
0
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004
6 juil. 2004 à 10:30
Oui sa utilise lotus notes mais c une appli VB6.0 (composée de 2 modules de classes cad sans FORM),
en fait je dois realiser la meme apli en java et je n' y arrive pas.
le but de cette apli est de verifier la presence ou non d'un fichier sur un lecteur reseau:
- si il y a un fichier verifier qu'au bout de 10min il n'y soit plus dans le cas contraire envoi de mail (avc lotus notes)
- si il n' y a pas de fichier, relancer l'apli et ainsi de suite

merci de m'aider je desespere

COCO RI CO
0
cs_niluje Messages postés 90 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 2 décembre 2004
6 juil. 2004 à 14:15
question à deux balles qui n'a rien à voir
pkoi ton supérieur t'as demandé de faire cette appli si tu n'as pas les connaissances/compétences pour la faire ..

*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*
Et croyez moi bientot, les flics auront du boulot, il n'y aura plus que la folie, la joie et l'Anarchie >:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_niluje Messages postés 90 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 2 décembre 2004
6 juil. 2004 à 14:15
ha oui j'oubliais ....
évite les spam sur la boite aux lettre interne au réseau code source merci
*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*°*
Et croyez moi bientot, les flics auront du boulot, il n'y aura plus que la folie, la joie et l'Anarchie >:)
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 juil. 2004 à 14:16
:big) Neodante :big)

Je cherche aussi à développer en Java avec Lotus Notes pour mon boulot et surtout histoire de faire du java !!! Mais je n'ai pas encore le faire ... je vais me renseigner auprès de mes collègues ...
@+

[Responsable www.neogamedev.com]
0
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004
Modifié le 26 févr. 2020 à 17:44
Pour NIJULE: tes questions a la con tu te les gardes maintenant desolé pour le spam le mail est parti deux fois j'ai pas fais expres enfoiré!
secundo tu as l'air d'etre un bel abruti vu que sur deux posts tes remarques sont aussi pertinantes que celles de ma petite soeur ...donc evite de baver pour rien dire sa arrangera tt le monde enfoiré!
Maintenant je sais ke c pas a toi ke je m'adresserai alors comme on dit "CREVE CHAROGNE".

POUR NEODANTE: merci pour ton aide au moins quelqu'un qui essaye d'aider les debutants dans mon genre j'ai lu pas mal de tes post sur l'ensemble du forum et j'ai appris plus que je ne l'aurai esperer.MERCI

voila pour ceux ke sa interesse ce que j'ai commencé a faire mais je m'en defait pas...enfin je galere grave j'ai mis plus de 6h a le faire.

import java.io.*;
import javax.mail.internet.*;
import javax.mail.*;
import java.util.*;

public class SFile{
public static void main(String[] args] {
//chemin du repertoire à lister
File path = new File("//par_spp...");
//liste des fichiers.txt présents dans le repertoire listé
String[] list = path.list(new MyFileNameFilter());
//on verifie si il y a un ou plusieurs fichiers dans le repertoire et on recupere leurs noms
for ( int i = 0 ; i < list[i].length ; )
list[i++].getName();
//si il y a au moins un fichier alors lancer le compteur de 10min
if (int i > 0; i ==list[i].length;)
timer.start()
timer.sheddule(TimerTask task, long delay)
//si le ou les fichier(s) sont encore dans le repertoire
if (List[i].equals(List));
//alors envoyer un mail et relancer l'application
SendMail.envoyerMailSMTP("10.10.50.8",true);
//sinon relancer l'application
return;

public class MyFileNameFilter implements FileNameFilter {
/**
  • Méthode acceptant seulement les fichiers .txt
  • /

public boolean accept(File path, String name) {
if(name.endsWith(".txt){
return true;
}
return false;
}
}

public class SendMail {
private final static String MAILER_VERSION = "Java";
public static boolean envoyerMailSMTP(String serveur, boolean debug) {
boolean result = false;
try {
Properties prop = System.getProperties();
prop.put("mail.smtp.host", serveur);
Session session = Session.getDefaultInstance(prop,null);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxxme@xxx.com"));
InternetAddress[] internetAddresses = new InternetAddress[1];
internetAddresses[0] = new InternetAddress("xxxxxxxme@xxxxxx.com");
message.setRecipients(Message.RecipientType.TO,internetAddresses);
message.setSubject("Attention problème avec un fichier");
message.setText("ce fichier est toujours dans le repertoire:",+ nameFich);
message.setHeader("X-Mailer", MAILER_VERSION);
message.setSentDate(new Date());
session.setDebug(debug);
Transport.send(message);
result = true;
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
return result;
}

public class Timer(){
public static createTimer(){

}//

si kelkun peut m'aider et corriger deja ce ke j'ai fait merci

COCO RI CO
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 juil. 2004 à 18:41
:big) Neodante :big)

Pour développer avec Lotus tu peux sois faire tes class à part et faire un agent qui exécutera ces classes, sois tu code en direct toujours dans un agent mais attention c'est la machine virtuelle de Notes qui est utilisé ... pour moi avec la R5 c'est ... 1.1 ... sniff je peux rien faire ou quasiment rien !!!

Je vois que tu utilises JavaMail ... tu ne devais pas utiliser Lotus Notes pour envoyer des mails ??? SInon c'est mieux que Notes pour envoyer de smails mais il te faut effectivement un serveur SMTP et tu n'a pas le controle des mails de Lotus derrière ... mais si ton boss n'en a rien a foutre alors c'est tranquille !

En tout cas le début à l'air plutot bien ... d'ailleurs je pense que tu ne devrais plus en avoir pour bien longtemps, non ???

@+

[Responsable www.neogamedev.com]
0
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004
7 juil. 2004 à 10:00
Bah oué j'espere que j'en ai pas pour trois mois lol
mais j'ai un soucis avec l'utilisation des threads pour la deuxieme partie de l'application soit: le fait qu'il attende 10min si un fichier est trouvé avant de rescanner le repertoire (je vois pas comment on raccorde sa en java) et si il n'a pas trouver de fichier relancer le scan du repertoire toute les secondes (afin de pas bouffer trop de CPU)!
sinon je peux utiliser javamail, Notes c'etait pour VB.
Merci pour votre aide, vos corrections et suggestions

COCO RI CO
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
7 juil. 2004 à 13:16
:big) Neodante :big)

Pour faire ton scan toutes les dix minutes

boolean running;

...

while (running){
//Scan
Thread.sleep(1000 * 60 * 10); // 10 minutes d'attente ...
}

...

Y a un try InterruptedException à caser pour le sleep ... comme ça pas de CPU bouffé ...

@+

[Responsable www.neogamedev.com]
0
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004
7 juil. 2004 à 13:41
COCO RI CO
0
Cori_java Messages postés 15 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 8 juillet 2004
7 juil. 2004 à 13:41
MERCI

COCO RI CO
0
Rejoignez-nous