cs_dpincon
Messages postés1Date d'inscriptionmercredi 12 février 2003StatutMembreDernière intervention10 avril 2006
-
10 avril 2006 à 16:23
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
10 avril 2006 à 16:40
Voici, j ai l algo suivant (qui fonctionne tres bien en vb). Si qq un arrive à le mettre en C++, je lui offre un irish cooofffee.
Objectif :
1. ouvrir un fichier texte
2. localiser une phrase du type ci dessous
$VVV UNIT$
ou VVV est une valeur
ou UNIT est une unitée
3. modifier la phrase en ajoutant la valeur dans un autre format
VVV UNIT (W UNIT2)
ou W est la nouvelle valeur
ou UNIT2 est la nouvelle unitée
------------------------------------
// Usource est une unité source
// Udest est une unité destination
// Coef est une valeur nurmérique de changement
// Le texte est le buffer complet d un fichier
Function convertir(usource, udest, coef, letexte)
Dim tableau, idxligne, calcul, a, b
'Tableau découpé suivant la phrase trouvée, par exemple " mm$"
tableau = Split(letexte, " " & usource & "$")
'Si j ai un tableau avec différentes dimensions
'je dois le recouper
If UBound(tableau) > 0 Then
For idxligne = LBound(tableau) To UBound(tableau)
'Tableau découpé suivant le "$"
calcul = Split(tableau(idxligne), "$")
'Si j ai un tableau avec différentes dimensions
'je dois rechercher les valeurs numériques
'faire le calcul
If UBound(calcul) > 0 Then
'Si c'est une valeur numérique
'je recalcule l ensemble
If IsNumeric(calcul(UBound(calcul))) Then
a = calcul(UBound(calcul))
b = a * coef
'je place un "x0123x456" pour m avertir qu il y a un calcul
calcul(UBound(calcul)) = "x0123x456" & a & " " & usource & " (" & b & " " & udest & ") "
End If
'je recompose ma ligne
tableau(idxligne) = Join(calcul, "$")
'si je trouve le $ et x0123x456 ensemble je dois remplacer le tout
tableau(idxligne) = Replace(tableau(idxligne), "$x0123x456", "")
End If
Next
End If
'Je refais mon tableau
convertir = Join(tableau, "")
End Function
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 avril 2006 à 16:40
Absolument jamais on ne réfléchit un algo avec un modèle en VB (ou autre faux code de ce genre) devant soi.
Par exemple pourquoi irait-on reproduire Split() alors que nous avons les pointeurs et autres modes d'accès direct à la mémoire.