Appli Traducteur Français Basque

Bonjour,

Voilà depis 1 ans j’avais le courage de faire un petit traducteur ( Français <--> Basque | Hé oui moi le tunisien qui le fait *_O ) suite à une demande d’un ami à moi. Donc aujourd’hui je poste une partie du code source pour ceux qui pouvait m’aider à résoudre beaucoup des pbs que j’ai rencontré :/
Le code est en VB6 et voilà le CORE de l’appli


'########----------- VERSION I : TRADUCTION DES MOTS DE POIDS = 1 --------###########################
'######## LAST Update Was : 27 / AVRIL / 2009 AU lit ( Faut penser a Reecrire la fonction de cryptage ) ##########
Option Explicit
Dim t() As String ' Tableau des phrases extraites de la zone de texte
Dim t_t() As String ' Tableau des mots et des combinaisons extraites de chaque ligne de tableau t()
Dim mot As String ' Contenaire des mots extraites ain pour etre traiter
Dim i, j, k, h, s As Integer ' Compteur
Dim code_fr As Integer ' code dans le dico french
Dim ligne_fr, mot_fr As String ' ligne de la dico french
Dim base_code_fr As String ' code Fr de la phrase saisie dans le champ texte
Dim ligne_base, mot_base As String ' ligne dans la base des regles
Dim regle As String ' Regle du mot a traiter : Extraction des codes Bs et les affecter au mot result ( Out)
Dim code_regle As String ' Code de la regle a comparer avec le code de Bs_dico
Dim ligne_bs, mot_bs As String ' Ligne et code de comparaison de dico Bs
Dim final As String
Private Sub Command1_Click()
If Text1.Text <> "" Then
Text2.Text = ""
final = ""

'------------------------- EXTRACTION DES MOTS DE TEXTBOX --------------------------------------
k = 1
h = 1
For i = 1 To Len(Text1.Text)
If Mid(Text1.Text, i, 1) <> "." Or i = Len(Text1.Text) Then
'########################Faut pas oublier le traitement des , ; . : ? ! #################################
mot = mot & Mid(Text1.Text, i, 1)
If i = Len(Text1.Text) Then
ReDim Preserve t(k) As String
t(k) = mot
mot = ""
End If
Else
ReDim Preserve t(i) As String
t(k) = mot: k = k + 1
mot = ""
End If
Next i
'---------- Affichage du tableau des phrases ##### Faut penser au decoupage des phrase en mots ##### --------
For i = 1 To k
MsgBox t(i)
Stop
'------------------ TRAITEMENT DES PHRASES ET DECOUPAGE EN MOT ---------------------------------
For j = 1 To Len(t(i))
If Mid(t(i), j, 1) <> " " Then
mot = mot & Mid(t(i), j, 1)
If j = Len(t(i)) Then
ReDim Preserve t_t(h) As String
t_t(h) = mot
mot = ""
End If
Else
' If j = Len(t(i)) Then
ReDim Preserve t_t(h) As String
t_t(h) = mot: h = h + 1
mot = ""
' End If
End If
Next j
'------------- Quelques part ici faut penser a Retraiter les mots --------------------------------------
'------------------- FIN DE DECOUPAGE -------------------------------------------------------------
ReDim t_t(h) As String
h = 1
Next i
'----------- Fin d'affichage des phrases ------------------------------------------------------------------------
If Dir(App.Path & "\Fr_dico.maj") <> "" And Dir(App.Path & "\Bs_dico.maj ") <> "" And Dir(App.Path & "\base.maj") <> "" Then
'--------------------- BOUCLE GENERAL IN ZE TABLE OF FR3NCH WORDS -------------------------------------------
For i = 1 To k
'---------------------- Recherche du code Fr -------------------------------------------
Open App.Path & "\Fr_dico.maj" For Input As #1
Do While Not EOF(1)
Line Input #1, ligne_fr
mot_fr = ""
For j = 1 To Len(ligne_fr)
If Mid(ligne_fr, j, 1) <> ":" Then
mot_fr = mot_fr & Mid(ligne_fr, j, 1)
Else
Exit For
End If
Next j
'-------------------- Test des codes et l'affection au tableau des codes FR -------------------------
If LCase(Trim(t(i))) = mot_fr Then
base_code_fr = Mid(ligne_fr, Len(mot_fr) + 2, Len(ligne_fr) - Len(mot_fr))
'----------- DÉBUT DU TRAITEMENT DE LA PARTIE POUR EXTRACTION DE LA RÈGLE CORRESPONDANTE ------------
Open App.Path & "\base.maj" For Input As #2
Do While Not EOF(2)
Line Input #2, ligne_base
mot_base = ""
For j = 1 To Len(ligne_base)
If Mid(ligne_base, j, 1) <> ":" Then
mot_base = mot_base & Mid(ligne_base, j, 1)
Else
Exit For
End If
Next j
If mot_base = "fr_" & base_code_fr Then
regle = Replace(ligne_base, "fr_" & base_code_fr & ":", "")
regle = Replace(regle, "bs_", "")
'MsgBox regle
'Stop
'Traitement de la regle : Extraction des codes Bs
For j = 1 To Len(regle)
If Mid(regle, j, 1) <> "|" Then
code_regle = code_regle & Mid(regle, j, 1)
Else
Open App.Path & "\Bs_dico.maj" For Input As #3
Do While Not EOF(3)
Line Input #3, ligne_bs
mot_bs = ""
For s = 1 To Len(ligne_bs)
If Mid(ligne_bs, s, 1) <> ":" Then
mot_bs = mot_bs & Mid(ligne_bs, s, 1)
Else
Exit For
End If
Next s
If code_regle = Mid(ligne_bs, Len(mot_bs) + 2, Len(ligne_bs) - Len(mot_bs)) Then
final = final & Mid(ligne_bs, 1, Len(ligne_bs) - Len(code_regle) - 1) & " "
code_regle = ""
End If
Loop
Close #3
End If
Next j
'Fin de traitement

End If
Loop
Close #2
'------------------------ FIN D'EXTRACTION DE LA RÈGLE -----------------------------------------
Exit Do
End If
'------------------- Fin de test d'affectation -----------------------------------------------
Loop
Close #1
'---------------------- Fin de recherche Fr ----------------------------------------------------
Next i
'----------------- FIN DE BOUCLE ---------------------------------------------------
End If
Text2.Text = final
End If
End Sub

Voilà la partie la plus sensible même si l’algo est pas si compliqué mais y a bcp des choses à revoir :/

Leave a Reply