Page 2 sur 4

Publié : mer. 12/oct./2005 13:25
par Flype
bon courage... :)

Publié : jeu. 13/oct./2005 9:07
par lionel_om
Merci !

Publié : ven. 14/oct./2005 18:49
par lionel_om
Une autre question :
Avec TailBite on peut faire ça ? :

Code : Tout sélectionner

Procedure.l myProc()
  ;blabla
  if ...
     Procedurereturn 1
  endif
  procedurereturn 0
EndProc...

Procedure.l myProc_DEBUG()
  if myProc() = 0
    TB_DebugError("Erreur ...")
  endif
EndProcedure
EDIT :
Non, c'est bon g fais des tests (laborieux car j'avais oublié les "ProcedureDLL et CDLL")
Et on peut bien faire cette manip !!! :D donc c'est super pratique... :D

Publié : sam. 29/oct./2005 11:04
par lionel_om
Bonjour à tous.
La version 1.1 de la LIB Vector ets disponible à l'adresse suivante ici.
Vous y trouverez la liste des fonctions disponibles (36 au total).

La doc est également à jour et j'ai enlevé toutes les erreurs que j'ai rencontré. Quelques modifications et améliorations ont été apportées.
Comme pour la version 1.0, la source est fournie.

Merci de me faire part de vos remarques et suggestions.
Lionel

Publié : mer. 02/nov./2005 10:28
par lionel_om
Elle n'intersse personne ma petite Lib ? :cry:

Dailleurs avec PB4, les listes chainées seront améliorées ???
ou ca sera toujours le même système : global ??? (pareil pour les tableaux ???)

Publié : mer. 02/nov./2005 10:46
par Chris
lionel_om a écrit :Elle n'intersse personne ma petite Lib ? :cry:
Faudrait déjà savoir précisément à quoi ça sert, parce que j'ai beau lire et relire les posts depuis le début, j'ai toujours pas compris son utilité. :oops:

Publié : mer. 02/nov./2005 11:41
par lionel_om
Chris a écrit :Faudrait déjà savoir précisément à quoi ça sert, parce que j'ai beau lire et relire les posts depuis le début, j'ai toujours pas compris son utilité. :oops:
En gros c'est pour "remplacer" les listes chainées de PB qui sont globales et on doit donc réécrire chaque procédure pour chaque liste chainée utilisée.

Là, c'est donc une liste chainée générique (comme dans PB : on peut y stoquer des longs, des strings et des structures), avec beaucoup de fonctions déjà créées pour effectuer des recherches, des tris, des opérations telles que des combinaisons (combiner deux listes), etcs (cf Doc).
Bien sûr les fonctions sont le plus possible optimisées : la fonction de tri est une adaptation du QuickSort( le tri le plus rapide existant), etc...

L'EXE contient la Doc, les sources, ainsi que des exemples...

Je suis assez clair là ???

Publié : mer. 02/nov./2005 11:45
par Chris
lionel_om a écrit :Je suis assez clair là ???
Ben...! Pas trop, mais on va faire avec! :lol:
:jesors:

Publié : mer. 02/nov./2005 12:22
par Progi1984
lionel_om a écrit :En gros c'est pour "remplacer" les listes chainées de PB qui sont globales et on doit donc réécrire chaque procédure pour chaque liste chainée utilisée.
lionel_om a écrit : Là, c'est donc une liste chainée générique
Tu te contredis pas un peu ? une liste chainée pour rempalcer les listes chainées ?

Publié : mer. 02/nov./2005 12:31
par lionel_om
Ma lib permetd e créer des listes chainées qui seront utilisables comme PB (ms localement et globalement) avec les fonctions suivantes par exemple :
* Vector_Next()
* Vector_Prev()
* Vector_First()
* Vector_Select()
* Vector_Add()
( fonctions similaires à celles proposées par PB)
Par contre ces listes peuvent être passées en argument à une fonction (ce sui n'est pas le cas des listes PB)

Mais en plus de ces simples fonctions de gestion de liste et de déplacament, il y a aussi des fonctions de recherche, de tri, etc (comme je le décris brievement dans le post précédent).
La liste exhaustive des fonctions et le lien pour télécharger la lib ainsi que l'aide (en français) sont disponibles à cette url :
http://luchezl.free.fr/Programmation/PB ... hp?file=60

Publié : mer. 02/nov./2005 18:08
par djes
Ca a l'air intéressant. J'ai regardé il y a un moment déjà et c'est vrai que c'est une bonne lib. Par contre, moi j'aurais besoin de listes chainées extrêmement rapide, si possible sans CALL, ou alors avec le minimum de passages sur la pile... Pas évident.

Publié : mer. 02/nov./2005 18:11
par Backup
djes a écrit :Ca a l'air intéressant. J'ai regardé il y a un moment déjà et c'est vrai que c'est une bonne lib. Par contre, moi j'aurais besoin de listes chainées extrêmement rapide, si possible sans CALL, ou alors avec le minimum de passages sur la pile... Pas évident.
les tableaux sont pas assez rapide ? :)

#schtroumpf

Publié : jeu. 03/nov./2005 10:04
par lionel_om
djes a écrit :Par contre, moi j'aurais besoin de listes chainées extrêmement rapide, si possible sans CALL, ou alors avec le minimum de passages sur la pile...
C'est quoi que tu appèle sans "CALL" ??? c'est des appels de fonctions ?
Comme j'ai donné la structure et les sources, tu peux toujours utilisés directement les commandes suivantes :
*vector\current, *vector\pos, etc... Comme ça tu empile moins.

Mais j'ai fais le maximum pour optimiser les fonctions. Si vous avez des suggestions n'hésitez pas...

Les tri et les Vector_Select() ont été optimisés au max. Je ne vois aucun moyen pour faire plus rapide... (si dans Select() je peux enlever des appels de fonctions par le même code si ca te convient mieux. Je ferais des tests sur le gain de performances...

Mais tinkiete pas, elles sont rapides... Moi je vais les utiliser dans mes futurs projets... :wink:

Publié : mer. 18/janv./2006 13:08
par lionel_om
Bonjour à tous.

J'ai eu un peu de temps (malgré la période d'exams finaux) et j'ai pu coder quelques fonctions supplémentaires à cette UserLib.

Maintenant, il ser apossible d'utiliser ces Vector en les associant à des structures (les SVector : Structured Vectors). Je m'explique :

Prenons la structure :

Code : Tout sélectionner

Structure Test
  a.b
  b.s
  *c.Point
  d.l
Il sera maintenant possible d'associer des champs à des sous-vecteurs : on dis que l'offset de "b" est une chaîne de caractère et l'offset de "c" est un pointeur sur une structure de 8 bits.

On pourra donc effectuer des opérations de ce type :

Code : Tout sélectionner

p.Point
bidon.Test
bidon\c = @p
; initialiation de bidon et de p

*vector.Vector = Vector_Create(SizeOf(Test))
; {création des offsets (associer les offsets avec leur type) }
; ...

Vector_Add(*vector, bidon)
; modification de bidon
bidon\c\X = 10 ; etc...
Vector_Add(*vector, bidon)
Les deux éléments du Vector seront donc différents et auront une intégrité correct.

Ainsi on pourra les utiliser très simplement et presque comme les listes chaînées de PB. Par contre le plus énorme, c'est que ces listes ne sont pas globales, mais locales.

On pourra alors facilement imaginer utiliser des SVectors pour créer des Base de Données ou gérer des structures avancées...

Plus d'info bien... La nouvelle version sera bientôt téléchargeable...

Lionel

Publié : ven. 20/janv./2006 14:52
par lionel_om
Bonjour @ tous.
Voila le nouveau lien : Lib Vector

Vous y trouvez la liste des fonctions disponibles.
Le fichier (zip) contient également un fichier d'aide documentant toutes les fonctions.
Des exemples sont également fournis, de même que les sources.

Voila un exemple pour gérer les structures complexes :

Code : Tout sélectionner

Structure Bidon
  a.l
  b.l
  c.s
  *d.Point
  e.l
EndStructure


*list.Vector = Vector_Create(SizeOf(Bidon))

c.Point
  c\x = 123
  c\y = 321
b.Bidon
  b\a = 5
  b\b = 6
  b\c = "Coucou"
  b\d = @c
  b\e = 5


SVector_SetOffset(*list, OffsetOf(Bidon\c), #LC_TYPE_STR)
SVector_SetOffset(*list, OffsetOf(Bidon\d), SizeOf(Point))
Vector_Add(*list, b)


b\c = "Ca va ?"
b\d\x = 987
b\d\y = 789


*b.Bidon = Vector_GetValue(*list) ; <=> *a\current\info
Debug "--= Exemple 1 =--"
Debug *b\a
Debug *b\b
Debug *b\c    ; affiche "Coucou"
Debug *b\d\x  ; affiche 123
Debug *b\d\y  ; affiche 321
Debug *b\e
Debug ""

Vector_Add(*list, b)
*b.Bidon = Vector_GetValue(*list) ; <=> *a\current\info
Debug "--= Exemple 2 =--"
Debug *b\a
Debug *b\b
Debug *b\c    ; affiche "Ca va ?"
Debug *b\d\x  ; affiche 987
Debug *b\d\y  ; affiche 789
Debug *b\e
J'attends vos remarques...