Bonjour,
Je suis en train de convertir un petit script Autoit (que j'ai fait) en programme PureBasic. Au passe j'en profite pour utiliser le typage plus fort disponible avec PureBasic que ce que l'on peut faire avec Autoit. Et là, j'ai un problème.
Mon programme tente de faire un traitement sur des fichiers log selon des modèles fournis. Je me retrouve avec la logique suivante :
Code:
; J'implémente mon modèle dans une structure.
Structure Template
Type.i
Pattern.s
Callback.Callback ; Fonction de rappel qui effectue le traitement
EndStructure
; Pour avoir un typage (un peu) plus fort, j'utilise un prototype.Celui-ci prend
; en paramètre l'enregistrement à traiter et le modèle qui à fait la correspondance
; (information indispensable pour certains traitements qui peuvent être
; déclenchés par plusieurs modèles).
Prototype.i callback(*record.Record, *template.Template)
Le problème est alors que le prototype à besoin de la structure pour être déclaré, mais que la structure à besoin du prototype. Au final c'est le serpent qui se mords la queue...
Il y a bien la solution qui consisterait à faire sauter l'information du type d'un coté ou de l'autre mais je trouve ça moche. Si quelqu'un vois une façon de résoudre ce problème de dépendance tout en gardant gardant l'information du type, je suis preneur.