Déclarations interdépendantes

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Naheulf
Messages : 191
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Déclarations interdépendantes

Message par Naheulf »

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 : Tout sélectionner

; 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.