Procs : Format RTF et EditorGadget
Publié : sam. 22/sept./2007 14:48
Voici quelques procédures assez bien expliquées pour faire faire fonctionner le format RTF dans un EditorGadget. Dans les dernières procédures, il s'agit de fonctions pour afficher et modifier une doc selon la présentation MSDN.
Les procédures s'appellent de bas en haut.
(La syntaxe RTF vient d'Octavius, donc merci à lui)
Les procédures s'appellent de bas en haut.
(La syntaxe RTF vient d'Octavius, donc merci à lui)
Code : Tout sélectionner
Procedure.S RTF(Type.L, Text.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Procédure qui décore la chaîne.d'entrée Text
; Type = 1: "{Sortie}" = RTF("Entrée") >> Décore avec une paire d'accolades
; Type = 2: Décore la chaîne d'entrée des ressources nécessaires pour le format RTF
; Spécialement conçu pour un SetGadgetText()
;
; Prépare une table succinte de fonte:
; 0 : Tahoma
; 1 : Arial
; 2 : Courier New
;
; Prépare une table type de couleurs
; 0 : Noir
; 1 : Bleu
; 2 : Vert
; 3 : Cyan
; 4 : Rouge
; 5 : Magenta
; 6 : Marron
; 7 : Gris
; 8 : Gris
; 9 : Bleu clair
; 10 : Vert clair
; 11 : Cyan clair
; 12 : Rouge clair
; 13 : Magenta clair
; 14 : Jaune
; 15 : Blanc
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Static Used.L
Static FontTable.S
Static ColorTable.S
Protected l.L
Protected r.L
Protected v.L
Protected b.L
Protected S.S = Text
If Used = 0
FontTable = "{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}{\f1\fswiss\fcharset0 Arial;}{\f2\fswiss\fcharset0 Courier New}}"
ColorTable = "{\colortbl ;"
For i = 1 To 15
l = ((i & 8) >> 3) * 128
r = l + ((i & 4) >> 2) * 127
v = l + ((i & 2) >> 1) * 127
b = l + (i & 1) * 127
ColorTable + "\red" + Str(r) + "\green" + Str(v) + "\blue" + Str(b) + ";"
Next
ColorTable + "}"
Used = 1
EndIf
If Type = 2: S = "\rtf1\ansi{\deflang1036}" + FontTable + ColorTable + S: Type = 1: EndIf
If Type = 1: S = "{" + S + "}": EndIf
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S RC(n.L = 1, Alinea = 0)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; RC() insère un retour chariot
; RC(n) insère n retour chariot <=> donc passe n-1 lignes
; RC(1, 10) retourne à la ligne avec un alinéa de 10 espaces
; La sortie de RC() est une chaîne au format RTF
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
Protected i.L
S = ""
For i = 1 To n
S + "\par " + Space(Alinea)
Next
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Coul(V.L, E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF de la couleur V (Cf table des couleurs dans RTF() )
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\cf" + Str(V) + " " + E + "\cf0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Size(V.L, E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF de la taille V
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\fs" + Str(V) + " " + E + "\fs0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Gras(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF avec les attributs GRAS
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\b" + E + "\b0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Ital(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF avec les attributs ITALIQUE
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\i" + E + "\i0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Courier(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF avec la police COURIER
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\f2" + E + "\f0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Tahoma(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF avec la police TAHOMA
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\f1" + E + "\f0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Verdana(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Décore la chaîne d'entrée E au format RTF avec la police VERDANA
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
S = "\f0" + E + "\f0"
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Para(E.S, W.L, Alinea.L)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Transforme la chaîne E au format RTF de telle sorte que la chaîne de sortie respectent
; tous les retours chariot et les alinea nécessaires spécifiés dans:
; * l'entrée W.L (Width) = Largeur du paragraphe (en caractères)
; * l'entrée Alinea.L = Largeur de la marge gauche du paragraphe (valeur en espaces)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
Protected Count.L
Protected Insert.L
Protected Char.S
Protected A.L
S = ""
Insert = 0
Count = 0
For i = 1 To Len(E)
A = Asc(Mid(E, i, 1) )
Char = Chr(A)
Count + 1
If Count > W
Count = 0
Insert = 1
EndIf
If Insert
If A = 32
Char = RC(1, Alinea)
Insert = 0
EndIf
EndIf
S + Char
Next
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Params(Titre$, E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Elabore l'affichage au format RTF de la syntaxe de la fonction spécifiée dans la fiche
; avec chacun de ses paramètres étalés l'un sous l'autre.
;
; Le nom de fonction correspond au titre de la fiche (Entrée Titre$). Le suffixe «_» y est ajouté.
; La paire de parenthèses est ajoutée.
; La largeur de l'alinéa respecté est en fonction de la longueur du nom de la fonction.
;
; La chaîne d'entrée E doit suivre exactement la syntaxe des point-virgule («;») comme suit:
; Nom_du_paramètre1;Définition_du_paramètre1;
; Nom_du_paramètre2;Définition_du_paramètre2;
; Nom_du_paramètre3;Définition_du_paramètre3;
; ...
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
Protected Alinea.L
Protected Fin.L
Protected Virg.S
Alinea = Len(Titre$) + 2
S = ""
Fin = CountString(E, ";") / 2
For i = 1 To Fin
If i = Fin: Virg = "": Else: Virg = "," + RC(1, Alinea): EndIf
S + Str(i) + ": " + StringField(E, ((i - 1) * 2) + 1, ";") + Virg
Next
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S DefParam(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Elabore l'affichage au format RTF des différents paramètres numérotés suivis de leur
; définition
;
;
; La largeur de l'alinéa respecté pour chaque paragraphe de chaque définition est en
; fonction de la longueur du nom du plus grand des paramètres
;
; La chaîne d'entrée E doit suivre la syntaxe des point-virgule («;») expliquée dans
; la fonction Params()
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
Protected Alinea.L
Protected Fin.L
Protected Virg.S
Protected Largest.L
Protected Length.L
Alinea = Len(Titre$) + 3
S = ""
Fin = CountString(E, ";") / 2
Largest = 0
For i = 1 To Fin
Length = Len(StringField(E, ((i - 1) * 2) + 1, ";") )
If Length > Largest
Largest = Length
EndIf
Next
For i = 1 To Fin
S + Str(i) + ": " + Gras(Courier(StringField(E, ((i - 1) * 2) + 1, ";") ) ) + RC(1, Largest)
S + Para(StringField(E, ((i - 1) * 2) + 2, ";"), 40, Largest) + RC(2)
Next
S = Size(20, S)
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure.S Fiche(Titre$, DLL$, Def$, Syntax$)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Elabore la fiche sous forme d'une chaîne de sortie au format RTF à partir de ses
; différents constituants (Titre, nom de la DLL, Définition de la fonction, Paramètres,
; et définition des paramètres)
;
; Aucune décoration n'est nécessaire pour Titre$, DLL$ et Def$
;
; La chaîne d'entrée Syntax$ doit respecter les décorations expliquées dans la fonction
; Params()
;
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected Text$
Text$ = ""
Text$ = Coul(2, Gras(Size(32, Titre$) ) ) + Chr(9)
Text$ + Ital(Size(32, "(" + DLL$ + ")" + RC(2) ) )
Text$ + Verdana(Size(20, Para(Def$, 50, 0) + RC(3) ) )
Text$ + Courier(Size(20, Coul(3, Titre$ + "_(" ) ) )
Text$ + Courier(Size(20, Coul(12, Params(Titre$, Syntax$) ) + Coul(3, ")") + RC(3) ) )
Text$ + DefParam(Syntax$)
ProcedureReturn Text$
EndProcedure
Code : Tout sélectionner
Procedure ChangeFiche(SubCard.L, Titre.S, DLL.S, Def.S, Syntax.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Met à jour l'intégralité d'un EditorGadget (SetGadgetText) dont le n° est spécifié par
; l'entrée SubCard
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
SetGadgetText(SubCard,RTF(2, Fiche(Titre, DLL, Def, Syntax) ) )
EndProcedure
Code : Tout sélectionner
Procedure.S TriC(E.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Fonction plus puissante que Trim() pour l'importation depuis le presse-papier
; (Vire TOUT ce qui fait ch... autour (à gauche et à droite) d'une expression)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected S.S
Protected i.L
Protected Fin.L
Protected A.L
S = ""
Fin = Len(E)
For i = 1 To Fin
A = Asc(Mid(E, i, 1) )
If A > 32
S = Right(E, (Fin - i) + 1)
Break
EndIf
Next
Fin = Len(S)
For i = Fin To 1 Step -1
A = Asc(Mid(S, i, 1) )
If A > 32
S = Left(S, i)
Break
EndIf
Next
ProcedureReturn S
EndProcedure
Code : Tout sélectionner
Procedure ImporteFiche(Gadget.L, Impor.S)
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Prend la chaîne d'entrée Impor.S, la formate en RTF et l'affiche dans EditorGadget
;_____________________________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Protected Titre.S
Protected DLL.S
Protected Def.S
Protected Syntax.S
Protected Param.S
Protected i.L
Titre = TriC(StringField(Impor, 1, Chr(13) ) )
DLL = TriC(StringField(Impor, 2, Chr(13) ) )
Def = TriC(StringField(Impor, 3, Chr(13) ) )
i = 4
Syntax = ""
Repeat
Param = TriC(StringField(Impor, i, Chr(13) ) )
If LCase(Left(Param, 5) ) = "[tag]"
Break
EndIf
If Len(Param) > 0
Syntax + Param
EndIf
i + 1
ForEver
ChangeFiche(Gadget, Titre, DLL, Def, Syntax)
EndProcedure