
Lib Vector
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Merci !
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Une autre question :
Avec TailBite on peut faire ça ? :
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 !!!
donc c'est super pratique... 
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
Non, c'est bon g fais des tests (laborieux car j'avais oublié les "ProcedureDLL et CDLL")
Et on peut bien faire cette manip !!!


Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
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
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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Elle n'intersse personne ma petite Lib ?
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 ???)

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 ???)
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
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.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é.
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à ???
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
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.
Tu te contredis pas un peu ? une liste chainée pour rempalcer les listes chainées ?lionel_om a écrit : Là, c'est donc une liste chainée générique
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
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
* 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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
les tableaux sont pas assez rapide ?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.


Dernière modification par Backup le jeu. 03/nov./2005 10:08, modifié 1 fois.
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
C'est quoi que tu appèle sans "CALL" ??? c'est des appels de fonctions ?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...
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...

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
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 :
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 :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
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
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)
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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
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 :
J'attends vos remarques...
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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !