Accueil > > > ANALYSEUR D'EXPRESSION ALGÉBRIQUE FACILEMENT EXTENSIBLE
ANALYSEUR D'EXPRESSION ALGÉBRIQUE FACILEMENT EXTENSIBLE
Information sur la source
Description
Montre comment créer un analyseur d'expression algébrique facilement en découpant le travail. Il comprend une fonction travaillant sur les parenthèses et une autre analysant les expressions de base (1+2) Voici le fonctionnement : Soit le calcul suivant : On va rechercher la première parenthèse fermante. Elle se situe à la fin de l'expression : (2+5) On effectue le calcul et l'on remplace la parenthèse par le résultat : 2+(7*45*(4+56*(2+7))+7)/4 Voici le détail du calcul à chaque "tour" du prog: 2+(7*45*(4+56*9)+7)/4 2+(7*45*(4+504)+7)/4 2 +(7*45*508+7)/4 2+(315*508+7)/4 2+(160020+7)/4 2+1 60027/4 2+40558.25 40558.25
Source
- '/-------------------------------------------------\
- '| |
- '| TITRE : Analyseur d'expression arithmétique |
- '| |
- '| Expression supposrtées : |
- '| Opérateurs de base : +,-,*,/,^ |
- '| Parenthèses : () |
- '| Fonctions : SIN,ABS,SQR |
- '| |
- '| BUGS connus de l'auteur : |
- '| 2*-5 donne -5 (*)Corrigé par mr_saturne |
- '| |
- '| Caractéristique du code : |
- '| Facilement extensible |
- '\-------------------------------------------------/
- Function evaluer(calc As String)
-
-
- Dim fact() As String
- Dim oper() As String
- Dim fpos As Integer
- Dim n As String
- Dim ffin As Integer
- ReDim fact(1) As String
- ReDim oper(1) As String
- Dim test_neg As Integer
-
-
-
- '********************************************
- '**IMPLEMENTATION DES FONCTIONS SPECIFIQUES**
- '********************************************
-
- 'Cosinus
- Do Until InStr(calc, "cos") = 0
- fpos = InStr(calc, "cos")
- n = ""
- If fpos > 0 Then
- For ix = fpos + 3 To Len(calc)
- If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
- Next ix
- calc = Replace(calc, "cos" + LTrim(str(n)), LTrim(str(Cos(n * 3.1415 / 180))))
- End If
- Loop
-
- 'Sinus
- Do Until InStr(calc, "sin") = 0
- fpos = InStr(calc, "sin")
- n = ""
- If fpos > 0 Then
- For ix = fpos + 3 To Len(calc)
- If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
- Next ix
- calc = Replace(calc, "sin" + LTrim(str(n)), LTrim(str(Sin(n * 3.1415 / 180))))
- End If
- Loop
-
- 'Racine carée
- Do Until InStr(calc, "sqr") = 0
- fpos = InStr(calc, "sqr")
- n = ""
- If fpos > 0 Then
- For ix = fpos + 3 To Len(calc)
- If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
- Next ix
- calc = Replace(calc, "sqr" + LTrim(str(n)), LTrim(str(Sqr(n))))
- End If
- Loop
-
- 'Valeure absolue
- Do Until InStr(calc, "abs") = 0
- fpos = InStr(calc, "abs")
- n = ""
- If fpos > 0 Then
- For ix = fpos + 3 To Len(calc)
- If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Or Mid(calc, ix, 1) = "-" Then n = n + Mid(calc, ix, 1) Else Exit For
- Next ix
- calc = Replace(calc, "abs" + LTrim(str(n)), LTrim(str(Abs(n))))
- End If
- Loop
-
-
-
-
-
-
- '********************************************
- '**RECHERCHE DES FACTEURS ET DES OPERATEURS**
- '********************************************
-
- For ix = 1 To Len(calc) ' debut de boucle
-
- Select Case Mid(calc, ix, 1) ' recherche des operateurs
-
- Case "^": ' exponenciation
- ReDim Preserve fact(UBound(fact()) + 1) As String ' Ajouter un indice dans les facteurs
- oper(UBound(oper)) = "^" ' Ajouter l'operateur à la liste
- ReDim Preserve oper(UBound(oper()) + 1) As String ' Ajouter un indice dans les opérateurs
-
- Case "*": ' multiplication
- ReDim Preserve fact(UBound(fact()) + 1) As String
- oper(UBound(oper)) = "*"
- ReDim Preserve oper(UBound(oper()) + 1) As String
-
- Case "/": ' division
- ReDim Preserve fact(UBound(fact()) + 1) As String
- oper(UBound(oper)) = "/"
- ReDim Preserve oper(UBound(oper()) + 1) As String
-
- Case "+": ' addition
- ReDim Preserve fact(UBound(fact()) + 1) As String
- oper(UBound(oper)) = "+"
- ReDim Preserve oper(UBound(oper()) + 1) As String
-
- Case "-": ' soustraction
- ReDim Preserve fact(UBound(fact()) + 1) As String
- oper(UBound(oper)) = "-"
- ReDim Preserve oper(UBound(oper()) + 1) As String
-
- Case Else: ' autres cas
- fact(UBound(fact)) = fact(UBound(fact)) + Mid(calc, ix, 1) ' ajouter le bout de chaine au dernier indice de fact
-
- End Select
-
- Next
-
-
-
- 'Remplace les chiffres négatifs
- rech:
- ix = 1
- test_neg = 0
- While ix < UBound(fact) 'parcours tous les facteurs
- If fact(ix) = "" And oper(ix) = "-" Then 'négatif trouvé
- fact(ix) = (-1) * fact(ix + 1) 'on remplace le vide par le facteur suivant en négatif
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1) 'on décale le tableau des opérateurs
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2) 'on décale le tableau des facteurs
- Next iy
-
- fact(UBound(fact)) = "" 'on supprime le facteur obsolette
-
- test_neg = 1
- End If
- ix = ix + 1 'on passe au suivant
- Wend
- If test_neg = 1 Then GoTo rech 'si un négatif a été trouvé on refait un passage
-
-
-
- 'Ajout des facteurs et des opérateurs dans les listes pour le deboguage
- List1.Clear
- List2.Clear
- For ix = 1 To UBound(fact)
- List1.AddItem (fact(ix))
- Next ix
-
- For ix = 1 To UBound(oper)
- List2.AddItem (oper(ix))
- Next ix
-
-
-
-
-
- '**************************
- '**CALCUL DE L'EXPRESSION**
- '**************************
-
-
- 'EXPONENTIELLE
- For ix = 1 To UBound(fact) ' Parcourir tous les facteurs
- If oper(ix) = "^" Then ' Si on trouve oper(ix)="^"
- fact(ix) = LTrim(str(Val(fact(ix)) ^ Val(fact(ix + 1)))) ' Calculer le nouveau facteur
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1) ' > Enlever un operateur et décaller le tableau
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2) ' > Enlever un facteur et décaller le tableau
- Next iy
-
- fact(UBound(fact)) = "" ' Effacer le facteur obsolette
- End If
- Next ix
-
-
- 'MULTIPLICATION
- For ix = 1 To UBound(fact)
- If oper(ix) = "*" Then
- fact(ix) = LTrim(str(Val(fact(ix)) * Val(fact(ix + 1))))
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1)
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2)
- Next iy
-
- fact(UBound(fact)) = ""
- End If
- Next ix
-
-
- 'DIVISION
- For ix = 1 To UBound(fact)
- If oper(ix) = "/" Then
- fact(ix) = LTrim(str(Val(fact(ix)) / Val(fact(ix + 1))))
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1)
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2)
- Next iy
-
- fact(UBound(fact)) = ""
- End If
- Next ix
-
-
- 'ADDITION
- For ix = 1 To UBound(fact)
- If oper(ix) = "+" Then
- fact(ix) = LTrim(str(Val(fact(ix)) + Val(fact(ix + 1))))
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1)
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2)
- Next iy
-
- fact(UBound(fact)) = ""
- End If
- Next ix
-
-
- 'SOUSTRACTION
- For ix = 1 To UBound(fact)
- If oper(ix) = "-" Then
- fact(ix) = LTrim(str(Val(fact(ix)) - Val(fact(ix + 1))))
-
- For iy = ix To UBound(oper) - 1
- oper(iy) = oper(iy + 1)
- Next iy
-
- For iy = ix To UBound(fact) - 2
- fact(iy + 1) = fact(iy + 2)
- Next iy
-
- fact(UBound(fact)) = ""
- End If
- Next ix
-
-
-
- For ix = 1 To UBound(fact)
- evaluer = evaluer + fact(ix) + oper(ix) ' Construction de la nouvelle expression.
- Next
-
- End Function
-
-
-
- Rem !!! Veuillez mentionner mon nom si vous comptez l'utiliser dans votre programme !!!
-
-
- Option Base 1 ' premier indice du tableau = 1
-
- Sub calculer_Click() ' Au clicque sur le bouton
- 'MsgBox parenthese(calcul.Text) ' pour deboguage
- Do Until parenthese(calcul.Text) = "aucune" ' fair j'usqu'à ce que la fonction retourne "aucune"
- If parenthese(calcul.Text) = "error" Then MsgBox "ERREUR : parenthèse manquante ou mal placée " + Chr(10) + " le programme a tenté de retrouver l'erreur" + Chr(10) + " veuillez suprimer les parenthèses inutiles et appuyer sur calculer", vbCritical, "!!! ERREUR utilisateur !!!": Exit Sub ' si la fonction retourne une erreur
- calcul = Replace(calcul, "(" + parenthese(calcul.Text) + ")", evaluer(parenthese(calcul.Text))) ' Simplifier le calcul au operateur de base (plus de () )
- Loop ' fin de boucle
- calcul = evaluer(calcul) ' evaluer l'expression simplifiée
- End Sub
-
- Function parenthese(calc As String)
- Dim pospo, pospf As String
- Rem rechecherche de la première parenthèse fermente
- pospf = InStr(1, calcul.Text, ")")
- If pospf <> 0 Then
- pospo = InStrRev(calcul.Text, "(", pospf)
- If pospo = 0 Then GoTo err1
- parenthese = Mid(calcul.Text, pospo + 1, pospf - pospo - 1)
- Else
- parenthese = "aucune"
- End If
- Exit Function
- err1:
- parenthese = "error"
- End Function
-
'/-------------------------------------------------\
'| |
'| TITRE : Analyseur d'expression arithmétique |
'| |
'| Expression supposrtées : |
'| Opérateurs de base : +,-,*,/,^ |
'| Parenthèses : () |
'| Fonctions : SIN,ABS,SQR |
'| |
'| BUGS connus de l'auteur : |
'| 2*-5 donne -5 (*)Corrigé par mr_saturne |
'| |
'| Caractéristique du code : |
'| Facilement extensible |
'\-------------------------------------------------/
Function evaluer(calc As String)
Dim fact() As String
Dim oper() As String
Dim fpos As Integer
Dim n As String
Dim ffin As Integer
ReDim fact(1) As String
ReDim oper(1) As String
Dim test_neg As Integer
'********************************************
'**IMPLEMENTATION DES FONCTIONS SPECIFIQUES**
'********************************************
'Cosinus
Do Until InStr(calc, "cos") = 0
fpos = InStr(calc, "cos")
n = ""
If fpos > 0 Then
For ix = fpos + 3 To Len(calc)
If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
Next ix
calc = Replace(calc, "cos" + LTrim(str(n)), LTrim(str(Cos(n * 3.1415 / 180))))
End If
Loop
'Sinus
Do Until InStr(calc, "sin") = 0
fpos = InStr(calc, "sin")
n = ""
If fpos > 0 Then
For ix = fpos + 3 To Len(calc)
If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
Next ix
calc = Replace(calc, "sin" + LTrim(str(n)), LTrim(str(Sin(n * 3.1415 / 180))))
End If
Loop
'Racine carée
Do Until InStr(calc, "sqr") = 0
fpos = InStr(calc, "sqr")
n = ""
If fpos > 0 Then
For ix = fpos + 3 To Len(calc)
If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Then n = n + Mid(calc, ix, 1) Else Exit For
Next ix
calc = Replace(calc, "sqr" + LTrim(str(n)), LTrim(str(Sqr(n))))
End If
Loop
'Valeure absolue
Do Until InStr(calc, "abs") = 0
fpos = InStr(calc, "abs")
n = ""
If fpos > 0 Then
For ix = fpos + 3 To Len(calc)
If IsNumeric(Mid(calc, ix, 1)) Or Mid(calc, ix, 1) = "." Or Mid(calc, ix, 1) = "-" Then n = n + Mid(calc, ix, 1) Else Exit For
Next ix
calc = Replace(calc, "abs" + LTrim(str(n)), LTrim(str(Abs(n))))
End If
Loop
'********************************************
'**RECHERCHE DES FACTEURS ET DES OPERATEURS**
'********************************************
For ix = 1 To Len(calc) ' debut de boucle
Select Case Mid(calc, ix, 1) ' recherche des operateurs
Case "^": ' exponenciation
ReDim Preserve fact(UBound(fact()) + 1) As String ' Ajouter un indice dans les facteurs
oper(UBound(oper)) = "^" ' Ajouter l'operateur à la liste
ReDim Preserve oper(UBound(oper()) + 1) As String ' Ajouter un indice dans les opérateurs
Case "*": ' multiplication
ReDim Preserve fact(UBound(fact()) + 1) As String
oper(UBound(oper)) = "*"
ReDim Preserve oper(UBound(oper()) + 1) As String
Case "/": ' division
ReDim Preserve fact(UBound(fact()) + 1) As String
oper(UBound(oper)) = "/"
ReDim Preserve oper(UBound(oper()) + 1) As String
Case "+": ' addition
ReDim Preserve fact(UBound(fact()) + 1) As String
oper(UBound(oper)) = "+"
ReDim Preserve oper(UBound(oper()) + 1) As String
Case "-": ' soustraction
ReDim Preserve fact(UBound(fact()) + 1) As String
oper(UBound(oper)) = "-"
ReDim Preserve oper(UBound(oper()) + 1) As String
Case Else: ' autres cas
fact(UBound(fact)) = fact(UBound(fact)) + Mid(calc, ix, 1) ' ajouter le bout de chaine au dernier indice de fact
End Select
Next
'Remplace les chiffres négatifs
rech:
ix = 1
test_neg = 0
While ix < UBound(fact) 'parcours tous les facteurs
If fact(ix) = "" And oper(ix) = "-" Then 'négatif trouvé
fact(ix) = (-1) * fact(ix + 1) 'on remplace le vide par le facteur suivant en négatif
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1) 'on décale le tableau des opérateurs
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2) 'on décale le tableau des facteurs
Next iy
fact(UBound(fact)) = "" 'on supprime le facteur obsolette
test_neg = 1
End If
ix = ix + 1 'on passe au suivant
Wend
If test_neg = 1 Then GoTo rech 'si un négatif a été trouvé on refait un passage
'Ajout des facteurs et des opérateurs dans les listes pour le deboguage
List1.Clear
List2.Clear
For ix = 1 To UBound(fact)
List1.AddItem (fact(ix))
Next ix
For ix = 1 To UBound(oper)
List2.AddItem (oper(ix))
Next ix
'**************************
'**CALCUL DE L'EXPRESSION**
'**************************
'EXPONENTIELLE
For ix = 1 To UBound(fact) ' Parcourir tous les facteurs
If oper(ix) = "^" Then ' Si on trouve oper(ix)="^"
fact(ix) = LTrim(str(Val(fact(ix)) ^ Val(fact(ix + 1)))) ' Calculer le nouveau facteur
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1) ' > Enlever un operateur et décaller le tableau
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2) ' > Enlever un facteur et décaller le tableau
Next iy
fact(UBound(fact)) = "" ' Effacer le facteur obsolette
End If
Next ix
'MULTIPLICATION
For ix = 1 To UBound(fact)
If oper(ix) = "*" Then
fact(ix) = LTrim(str(Val(fact(ix)) * Val(fact(ix + 1))))
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1)
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2)
Next iy
fact(UBound(fact)) = ""
End If
Next ix
'DIVISION
For ix = 1 To UBound(fact)
If oper(ix) = "/" Then
fact(ix) = LTrim(str(Val(fact(ix)) / Val(fact(ix + 1))))
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1)
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2)
Next iy
fact(UBound(fact)) = ""
End If
Next ix
'ADDITION
For ix = 1 To UBound(fact)
If oper(ix) = "+" Then
fact(ix) = LTrim(str(Val(fact(ix)) + Val(fact(ix + 1))))
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1)
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2)
Next iy
fact(UBound(fact)) = ""
End If
Next ix
'SOUSTRACTION
For ix = 1 To UBound(fact)
If oper(ix) = "-" Then
fact(ix) = LTrim(str(Val(fact(ix)) - Val(fact(ix + 1))))
For iy = ix To UBound(oper) - 1
oper(iy) = oper(iy + 1)
Next iy
For iy = ix To UBound(fact) - 2
fact(iy + 1) = fact(iy + 2)
Next iy
fact(UBound(fact)) = ""
End If
Next ix
For ix = 1 To UBound(fact)
evaluer = evaluer + fact(ix) + oper(ix) ' Construction de la nouvelle expression.
Next
End Function
Rem !!! Veuillez mentionner mon nom si vous comptez l'utiliser dans votre programme !!!
Option Base 1 ' premier indice du tableau = 1
Sub calculer_Click() ' Au clicque sur le bouton
'MsgBox parenthese(calcul.Text) ' pour deboguage
Do Until parenthese(calcul.Text) = "aucune" ' fair j'usqu'à ce que la fonction retourne "aucune"
If parenthese(calcul.Text) = "error" Then MsgBox "ERREUR : parenthèse manquante ou mal placée " + Chr(10) + " le programme a tenté de retrouver l'erreur" + Chr(10) + " veuillez suprimer les parenthèses inutiles et appuyer sur calculer", vbCritical, "!!! ERREUR utilisateur !!!": Exit Sub ' si la fonction retourne une erreur
calcul = Replace(calcul, "(" + parenthese(calcul.Text) + ")", evaluer(parenthese(calcul.Text))) ' Simplifier le calcul au operateur de base (plus de () )
Loop ' fin de boucle
calcul = evaluer(calcul) ' evaluer l'expression simplifiée
End Sub
Function parenthese(calc As String)
Dim pospo, pospf As String
Rem rechecherche de la première parenthèse fermente
pospf = InStr(1, calcul.Text, ")")
If pospf <> 0 Then
pospo = InStrRev(calcul.Text, "(", pospf)
If pospo = 0 Then GoTo err1
parenthese = Mid(calcul.Text, pospo + 1, pospf - pospo - 1)
Else
parenthese = "aucune"
End If
Exit Function
err1:
parenthese = "error"
End Function
Conclusion
Merci à mr_saturne pour son travail.(Modification de evaluer() )
Historique
- 26 janvier 2006 20:38:22 :
- mr_saturne a corrigé le bug.
Un grand merci.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Comment evaluer une expression ? [ par GEDDi ]
Bonjour,je cherche comment on peut Evaluer une expression en VB :Exemple j'ai une fonction TOTO(args)qui renvoie 'hello' et je veux l'évaluer: exister
DEFI !!! : Evaluer le contenu d'une variable à l'exécution [ par Philippe PUECH ]
Salut à tous ! Je programme depuis un moment en VB et il manque cruellement un accès aux variables. Quelqu'un sait-il comment, lors de l'exécution, ré
Recherche ActiveX ou Module pour parser du XML [ par shire ]
Recherche ActiveX ou Module pour parser du XML
lire une variable ligne par ligne, parser XML [ par guiguimac ]
Bonjour,existe-il une methode propre à VB pour lire le contenu d'une variable ligne par ligne ou faut-il parser la chaîne nous même en prenant en comp
A gagner Analyseur SQL (Parser) [ par Renfield ]
Salut tout le monde !!Pour le boulot , j'ai fait une classe (egalement disponible en ocx) qui permet de parser un requete SQL. Vous lui fournissez la
parser des strings [ par tyf ]
Bonjour, J aimerais parser des chaines de caractères par rapport à un caractère:ex: split(machaine,"-") ... Y a t il une fonction en VBA ? merci ...
Problème avec HTMLDocument [ par piotrelrojo ]
Bonjour, j'ai un problème avec vb .net ... que je trouve insolublej'ai des fichiers htmlque je veux parserpour récupérer le code, je fais donc ça: Dim
parser xml en C [ par jbt36 ]
bonjour à tous,j'ai besoin de realiser un editeur xml en Cpour cela je dois notamment parser le fichier xml pour pouvoir le manipuler,l'affichersous f
Parser une page HTML [ par zucchero ]
Salut tlm,J'ai téléchargé le prg de joshrbz pour parser une page HTML et pour en retirer de l'info. Mais vu que je pige rien en PHP, que dois-je faire
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|