"
Dim sUni
If iCle = 13 Then
sUni = document.all.Saisie.value 'valeur fournie dans le formulaire
'msgbox "AffFicheSaisie: " & sUni
If sUni <> "" Then
document.location.hash = ""
AffFicheNet sUni, sDico, sDicoMot
'document.all.Bloc.innerHtml = "" & sDes & ""
If Left(document.all.Bloc.innerHtml, Len(kIdVierge)) = kIdVierge Then document.all.Bloc.innerHtml = ""
End If
window.event.keyCode = 0 ' bouffer la clé
'CreerBloc '...mis pour post imprimer qui n'est pas synchro, mais éviter (ralentit)
End If
End Sub
'---------- Partie Cjk (par clés)
Dim sBlocAct
Dim bBlocAct 'continuer à mettre à jour
Sub CreerBlocCjk(sDico, sZiCumul)
Const kListeCle = "<19968><20008><20022><20031><20057><20101><20108><20128><20154><20799><20837><20843><20866><20886><20907><20960><20981><20992><21147><21241><21269><21274><21304><21313><21340><21353><21378><21430><21448><21475><22231><22303><22763><22786><22794><22805><22823><22899><23376><23424><23544><23567><23586><23608><23662><23665><24027><24037><24049><24062><24178><24186><24191><24308><24318><24331><24339><24400><24417><24435><24515><25096><25142><25163><25903><25908><25991><26007><26020><26041><26080><26085><26352><26376><26408><27424><27490><27513><27571><27595><27604><27611><27663><27668><27700><28779><29226><29238><29243><29247><29255><29273><29275><29356><29572><29577><29916><29926><29976><29983><29992><30000><30091><30098><30326><30333><30382><30399><30446><30683><30690><30707><31034><31160><31166><31348><31435><31481><31859><31992><32566><32593><32650><32701><32769><32780><32786><32819><32895><32905><33251><33258><33267><33276><33292><33307><33311><33390><33394><33400><34381><34411><34880><34892><34915><35198><35211><35282><35328><35895><35910><35925><35960><35997><36196><36208><36275><36523><36554><36763><36784><36789><37009><37193><37318><37324><37329><38263><38272><38428><38582><38585><38632><38737><38750><38754><38761><38859><38893><38899><38913><39080><39131><39135><39318><39321><39340><39592><39640><39647><39717><39727><39730><39740><39770><40165><40565><40575><40613><40635><40644><40653><40657><40697><40701><40718><40723><40736><40763><40778><40786><40845><40860><40864><40869>"
Const kCleVolumineuse = "<20154><21475><24515><25163><26408><27700><31992><33400><35328><37329>"
' Inutile, il suffit de calculer l'écart avec la suivante
Const kNbCol = 24 '32
'Const kNbLig = 17
Const kNbLigMin = 4
Const kHashImplicite = "#19968"
Const kMinCjk = 19968
Const kMaxCjk = 40869
Dim sUni, sUniSui
Dim sDes, sDesLig
Dim xDeb
Dim i, j, k
Dim iNbLig
sBlocAct = ""
bBlocAct = True
RafraichirBloc 'déclencher le chrono, mais il se déclenche seulement quand on sort de cette procédure
window.status = "Recherche des caractères..."
'msgbox "CreerBlocCjk" 'NB, vient chaque fois qu'on sélectionne un car. car déclencé par onfocus
'window.setInterval "RafraichirBloc()", 100 'ne marche pas mieux que window.setTimeout
sDes = ""
sUni = document.location.hash
If sUni = "" Then sUni = kHashImplicite
sUni = Mid(sUni, 2)
i = Instr(kListeCle, sUni)
sUniSui = Mid(kListeCle, i + 7, 5)
iNbLig = Int((sUniSui - sUni) / kNbCol) + 1
If iNbLig < kNbLigMin Then iNbLig = kNbLigMin
For i = 0 To iNbLig - 1
For j = 0 To kNbCol - 1
k = (sUni + i * kNbCol + j)
If (k < kMaxCjk) And (Instr(kListeCle, k) > 1) Then
sDesLig = sDesLig & "" & k & ";"
'ElseIf DefExiste(sDico, k) Then
ElseIf Instr(sZiCumul, ChrW(k)) > 0 Then
sDesLig = sDesLig & "" & k & ";"
Else
sDesLig = sDesLig & "" & k & ";"
End If
Next
sDes = sDes & sDesLig
If i Mod 1 = 8 Then
'document.all.Bloc.innerHtml = "" & i & sDes & "" 'inutile...
sBlocAct = "" & sDes & ""
'window.status = i
End If
sDesLig = ""
If k >= kMaxCjk Then Exit For
Next
bBlocAct = False
window.status = "Terminé"
'window.clearInterval
document.all.Bloc.innerHtml = "" & sDes & ""
document.selection.empty
document.all.Bloc.setActive
End Sub
Sub RafraichirBloc
' Problème: n'est enclenché que lorsque CreerBlocCjk est fini, quelque soit le délai
'... on pourra le détruire
Dim iChrono
'window.status = "Rafraîchir"
If bBlocAct Then
'If bBlocAct < 30 Then
setTimeout "RafraichirBloc()", 100
document.all.Bloc.innerHtml = sBlocAct
iChrono = 0
Do While iChrono < 10000
iChrono = iChrono + 1
Loop
bBlocAct = bBlocAct + 1
End If
End Sub
Sub SaisirCle(iCle, sDico, sDicoMot)
' Afficher la traduction du texte sélectionné si iCle est correcte
Const kCleAffFiche = 13
Const kCleVisible = 32
If iCle = kCleVisible Then
VisibleIntervertir
window.event.keyCode = 0 ' bouffer la clé
ElseIf iCle = kCleAffFiche Then
AffFiche sDico, sDicoMot
window.event.keyCode = 0 ' bouffer la clé
End If
End Sub
Sub VisibleIntervertir()
' Cacher ou montrer les caractères sans traduction
Dim sVisible
sVisible = document.styleSheets(1).rules(inconnu).style.display
If sVisible = "none" Then
document.styleSheets(1).rules(inconnu).style.display = "inline"
Else
document.styleSheets(1).rules(inconnu).style.display = "none"
End If
End Sub
'---------- partie pinyin
Sub CreerBlocPinyin(sDico)
Const kNbCol = 32
Const kNbLigMin = 8
Const kHashImplicite = "a"
Const kDelimPin = "."
Const kMaxPinTons = 5
Dim iNbLig
Dim sPin
Dim tPin, i
Dim sDes, sHom
sDes = ""
sPin = document.location.hash
sPin = Mid(sPin, 2)
If sPin = "" Then sPin = kHashImplicite
sPin = AccentuerPinyin(sPin)
tPin = Split(sPin, kDelimPin)
For i = 0 To kMaxPinTons - 1
sHom = TrouverHomophones(sDico, tPin(i))
If sHom <> "" Then sDes = sDes & " " & tPin(i) & " " & TrouverHomophones(sDico, tPin(i))
Next
document.all.Bloc.innerHtml = "" & sDes & ""
document.selection.empty
document.all.Bloc.setActive
End Sub
'---------- partie commune
Sub AffSelFiche(sDico, sDicoMot)
AffFiche sDico, sDicoMot 'refuser si on n'est pas dans document.all.BlocCjk
AffSel sDico
End Sub
Sub AffFiche(sDico, sDicoMot)
Dim sFiche, raSel
Dim iUni, sUni, sPin, sTra
Dim iClasse
'extraire les premières lignes dans chott.vs
Set raSel = document.selection.createRange()
sUni = raSel.text
' iClasse = raSel.ClassName
'msgbox iClasse
If sUni = "" then Exit Sub
'If document.selection.style.class = "Pin" Then bPin = True
AffFicheNet sUni, sDico, sDicoMot
End Sub
Sub AffFicheNet(sUni, sDico, sDicoMot)
Dim sFiche
Dim iUni
Dim sPin, sTra, bExact
If sUni = "" then Exit Sub
iUni = Ascw(Left(sUni,1))
If iUni < 0 Then iUni = iUni + &H10000
bExact = False
If window.event.altKey Then bExact = True 'recherche exacte si Alt
If iUni < kMinCjk Then
sUni = Trim(sUni)
If AscW(Left(sUni, 1)) >= kDebKana Then
If Len(sUni) < 2 Then Exit Sub
'If window.event.altKey Then sUni = kDelimChamp & sUni & kDelimChamp
Else
If Len(sUni) < 3 Then Exit Sub
'If window.event.altKey Then sUni = ", " & sUni & "," 'recherche exacte si Alt
End If
sFiche = CreerFicheLatin(sDico, sDicoMot, sUni, bExact)
Else
sUni = iUni
sFiche = CreerFiche(sDico, sDicoMot, iUni, sPin, sTra)
End If
If sFiche <> "" Then
document.selection.empty
document.all.Fiche.innerHtml = sFiche
AffShufa sUni, sPin
End If
End Sub
Sub AffShufa(sUni, sPin)
' En entrée les 5 chiffres Unicode et le pinyin
'Const kNomRep = "../../sh/"
Const kNomRep = "../sh/"
Dim sPinNet
Dim sNomFi
Dim s, sIcone, sIconeAction
'sPinNet = DesaccentuerPinyin(sPin)
'sPinNet = Ucase(Left(sPinNet, 1)) & Mid(sPinNet, 2)
'sNomFi = kNomRep & "zh" & sPinNet & "-" & sUni & ".gif"
sNomFi = kNomRep & "zh" & "-" & sUni & ".gif"
s = "
"
's = "

"
sIconeAction = "onclick='vbScript:CacherMontrerShufa'"
sIcone = "书 " '书s 26360t
Shufa.innerHtml = sIcone & s
End Sub
Sub CacherMontrerShufa
If document.all.imShufa.style.display = "none" Then
document.all.imShufa.style.display = "inline"
Else
document.all.imShufa.style.display = "none"
End If
'this.style.background-color = "#00099"
'msgbox "Coucou"
End Sub
Sub TraiterErreurs()
' Une seule erreur pour le moment
'msgbox "TraiterErreurs"
Shufa.innerHtml = "" 'image non trouvée: effacer son marqueur
End Sub
Sub ChargementTermine()
document.body.style.cursor = "default"
End Sub
-->