
Progi1984 - Programmes & Userlibs
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Release de Juillet 2008 :
RLibPlus.zip

Taille : 360Ko
News : Pas de release en Aout ; la prochaine release aura leu en Septembre.
RLibPlus.zip

Taille : 360Ko
Code : Tout sélectionner
Anciennement connu sous le nom de LibEditorPlus, cette lib a été amélioré et s'applique à de nombreux autres gadgets.
Code : Tout sélectionner
Historique : 0.1.1 : Ajout du support de la coloration syntaxique
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
d'un autre coté tu peux jeter un oeil la :fd a écrit : Dommage, je voulais modifier des zones de textes en RTF et je m'étais appuyé sur LibEditorPlus.
Merci de votre avis.
http://www.purebasic.fr/french/viewtopi ... hlight=rtf

Merci Dobro.fd a écrit :Bonjour,
J'ai un problème de compatibilité entre RLibPlus et la version 4.20.
POLINK: error: Unresolved external symbol '_PB_Mid'.
POLINK: fatal error: 1 unresolved external(s).
Dommage, je voulais modifier des zones de textes en RTF et je m'étais appuyé sur LibEditorPlus.
Merci de votre avis.
Problème résolu ... c'était PurePDF qui n'était pas compatible ... DSL
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Release de Septembre 2008 :
RPack.zip

Taille: 74Ko
DB_SQLite_0.3.zip

Taille: 231Ko
GoogleCode : RWrappers
RPack.zip

Taille: 74Ko
Code : Tout sélectionner
MAJ pour PB 4.20.

Taille: 231Ko
Code : Tout sélectionner
Release with SQLite 3.6.0.
Code : Tout sélectionner
Collection de tous les RWrappers.
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Je tente d'utiliser depuis hier la lib Png avec ton wrapper.
J'ai réussi une lecture partielle de l'image PNG d'une icône Vista compressée avec les fonctions
png_check_sig
png_create_read_struct
png_create_info_struct
png_read_from_mem
png_destroy_read_struct
mais lors de la lecture des infos dans la callback d'énumération png_read_from_mem() qui lit en suivant chaque donnée, je n'ai que 3 boucles, la première qui lit l'identifiant, la deuxième qui lit le long suivant qui est la taille du segment IHDR (=chunk IHDR) et la troisième qui lit les caractète IHDR (à l'envers), là c'est bon mais l'adresse d'écriture fournie par la callback pour stocker les données (là je suppose) devrait me faire arriver sur l'élément chunk_name.b[5] de la structure png_struct_def ou sur la liste des segments mais je suis beaucoup plus loin dans la structure sur une valeur qui n'a rien à voir.
Je suppose que la structure png_struct_def sera à revoir vu le nombre de #ifdef et de #if defined() qu'elle contient.
Comme j'utilise la dll et que ces structures sont allouées en mémoire par la lib, je ne sais pas dans quel mode elle a été compilée .....
Le type png_byte est défini comme ceci dans le fichier pngconf.h
J'ai corrigé pour l'instant les tableaux de définition des noms des segments
La définition du segment IHDR par exemple est celle-ci:
Le tableau est un tableau de 5 éléments (de 0 à 4 en PB) de type caractère (.c). J'ai lu de la doc sur les tableau en C, le nombre entre crochet correspond au nombre strict d'éléments du tableau.
J'ai aussi remplacé les valeurs numériques par leur correspondance en lettre pour que ça soit plus parlant.
Par exemple, le segment IHDR était défini dans ton wrapper par :
Chaque élément est un long ou integer selon la version de PB et pas un caractère.
Voici ce que je te propose
J'ai aussi modifié le dernier élément qui est un simple 0 de fin de chaine.
Chaque tableau a bien 5 éléments de type caractère et le dernier élément de chaque tableau est un 0 de fin de chaine.
Pour la compilation unicode, je ne sais pas si le .c est correct.
Voici les tableaux modifiés :
J'ai n'ai pas corrigé les tableaux des structures car la doc PB dit ceci (dans la rubrique structure)
J'ai corrigé la macro PNG_OUT_OF_RANGE, je l'ai transformé en procedure pour que le résultat soit conforme.
A+
J'ai réussi une lecture partielle de l'image PNG d'une icône Vista compressée avec les fonctions
png_check_sig
png_create_read_struct
png_create_info_struct
png_read_from_mem
png_destroy_read_struct
mais lors de la lecture des infos dans la callback d'énumération png_read_from_mem() qui lit en suivant chaque donnée, je n'ai que 3 boucles, la première qui lit l'identifiant, la deuxième qui lit le long suivant qui est la taille du segment IHDR (=chunk IHDR) et la troisième qui lit les caractète IHDR (à l'envers), là c'est bon mais l'adresse d'écriture fournie par la callback pour stocker les données (là je suppose) devrait me faire arriver sur l'élément chunk_name.b[5] de la structure png_struct_def ou sur la liste des segments mais je suis beaucoup plus loin dans la structure sur une valeur qui n'a rien à voir.
Je suppose que la structure png_struct_def sera à revoir vu le nombre de #ifdef et de #if defined() qu'elle contient.
Comme j'utilise la dll et que ces structures sont allouées en mémoire par la lib, je ne sais pas dans quel mode elle a été compilée .....
Le type png_byte est défini comme ceci dans le fichier pngconf.h
c'est donc un caractèretypedef unsigned char png_byte;
J'ai corrigé pour l'instant les tableaux de définition des noms des segments
La définition du segment IHDR par exemple est celle-ci:
Code : Tout sélectionner
#define PNG_IHDR png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'}
J'ai aussi remplacé les valeurs numériques par leur correspondance en lettre pour que ça soit plus parlant.
Par exemple, le segment IHDR était défini dans ton wrapper par :
Code : Tout sélectionner
Global Dim png_IHDR(5) : png_IHDR(0) = 73 : png_IHDR(1) = 72 : png_IHDR(2) = 68 : png_IHDR(3) = 82 : png_IHDR(4) = '\0' :
Voici ce que je te propose
Code : Tout sélectionner
Global Dim png_IHDR.c(4) : png_IHDR(0) = 'I' : png_IHDR(1) = 'H' : png_IHDR(2) = 'D' : png_IHDR(3) = 'R' : png_IHDR(4) = 0
Chaque tableau a bien 5 éléments de type caractère et le dernier élément de chaque tableau est un 0 de fin de chaine.
Pour la compilation unicode, je ne sais pas si le .c est correct.
Voici les tableaux modifiés :
Code : Tout sélectionner
Global Dim png_IHDR.c(4) : png_IHDR(0) = 'I' : png_IHDR(1) = 'H' : png_IHDR(2) = 'D' : png_IHDR(3) = 'R' : png_IHDR(4) = 0
Global Dim png_IDAT.c(4) : png_IDAT(0) = 'I' : png_IDAT(1) = 'D' : png_IDAT(2) = 'A' : png_IDAT(3) = 'T' : png_IDAT(4) = 0
Global Dim png_IEND.c(4) : png_IEND(0) = 'I' : png_IEND(1) = 'E' : png_IEND(2) = 'N' : png_IEND(3) = 'D' : png_IEND(4) = 0
Global Dim png_PLTE.c(4) : png_PLTE(0) = 'P' : png_PLTE(1) = 'L' : png_PLTE(2) = 'T' : png_PLTE(3) = 'E' : png_PLTE(4) = 0
Global Dim png_bKGD.c(4) : png_bKGD(0) = 'b' : png_bKGD(1) = 'K' : png_bKGD(2) = 'G' : png_bKGD(3) = 'D' : png_bKGD(4) = 0
Global Dim png_cHRM.c(4) : png_cHRM(0) = 'c' : png_cHRM(1) = 'H' : png_cHRM(2) = 'R' : png_cHRM(3) = 'M' : png_cHRM(4) = 0
Global Dim png_gAMA.c(4) : png_gAMA(0) = 'g' : png_gAMA(1) = 'A' : png_gAMA(2) = 'M' : png_gAMA(3) = 'A' : png_gAMA(4) = 0
Global Dim png_hIST.c(4) : png_hIST(0) = 'h' : png_hIST(1) = 'I' : png_hIST(2) = 'S' : png_hIST(3) = 'T' : png_hIST(4) = 0
Global Dim png_iCCP.c(4) : png_iCCP(0) = 'i' : png_iCCP(1) = 'C' : png_iCCP(2) = 'C' : png_iCCP(3) = 'P' : png_iCCP(4) = 0
Global Dim png_iTXt.c(4) : png_iTXt(0) = 'i' : png_iTXt(1) = 'T' : png_iTXt(2) = 'X' : png_iTXt(3) = 't' : png_iTXt(4) = 0
Global Dim png_oFFs.c(4) : png_oFFs(0) = 'o' : png_oFFs(1) = 'F' : png_oFFs(2) = 'F' : png_oFFs(3) = 's' : png_oFFs(4) = 0
Global Dim png_pCAL.c(4) : png_pCAL(0) = 'p' : png_pCAL(1) = 'C' : png_pCAL(2) = 'A' : png_pCAL(3) = 'L' : png_pCAL(4) = 0
Global Dim png_sCAL.c(4) : png_sCAL(0) = 's' : png_sCAL(1) = 'C' : png_sCAL(2) = 'A' : png_sCAL(3) = 'L' : png_sCAL(4) = 0
Global Dim png_pHYs.c(4) : png_pHYs(0) = 'p' : png_pHYs(1) = 'H' : png_pHYs(2) = 'Y' : png_pHYs(3) = 's' : png_pHYs(4) = 0
Global Dim png_sBIT.c(4) : png_sBIT(0) = 's' : png_sBIT(1) = 'B' : png_sBIT(2) = 'I' : png_sBIT(3) = 'T' : png_sBIT(4) = 0
Global Dim png_sPLT.c(4) : png_sPLT(0) = 's' : png_sPLT(1) = 'P' : png_sPLT(2) = 'L' : png_sPLT(3) = 'T' : png_sPLT(4) = 0
Global Dim png_sRGB.c(4) : png_sRGB(0) = 's' : png_sRGB(1) = 'R' : png_sRGB(2) = 'G' : png_sRGB(3) = 'B' : png_sRGB(4) = 0
Global Dim png_tEXt.c(4) : png_tEXt(0) = 't' : png_tEXt(1) = 'E' : png_tEXt(2) = 'X' : png_tEXt(3) = 't' : png_tEXt(4) = 0
Global Dim png_tIME.c(4) : png_tIME(0) = 't' : png_tIME(1) = 'I' : png_tIME(2) = 'M' : png_tIME(3) = 'E' : png_tIME(4) = 0
Global Dim png_tRNS.c(4) : png_tRNS(0) = 't' : png_tRNS(1) = 'R' : png_tRNS(2) = 'N' : png_tRNS(3) = 'S' : png_tRNS(4) = 0
Global Dim png_zTXt.c(4) : png_zTXt(0) = 'z' : png_zTXt(1) = 'T' : png_zTXt(2) = 'X' : png_zTXt(3) = 't' : png_zTXt(4) = 0
J'ai n'ai pas corrigé les tableaux des structures car la doc PB dit ceci (dans la rubrique structure)
Note : Un tableau statique dans une structure ne se comporte pas de la même façon qu'un tableau défini avec la commande Dim. Ceci pour être conforme au format de structures en C/C++ (pour permettre un portage direct des structures de l'API). Ce qui signifie que a[2] assignera un tableau de 0 à 1 (deux éléments) alors que Dim a(2) assignera un tableau de 0 à 2 (trois éléments).
J'ai corrigé la macro PNG_OUT_OF_RANGE, je l'ai transformé en procedure pour que le résultat soit conforme.
A+
Code : Tout sélectionner
Procedure PNG_OUT_OF_RANGE(value, ideal, delta)
If (value<(ideal-delta)) Or (value>(ideal + delta))
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Denis, je regarde ce we.
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Voilà, j'ai mis à jour le SVN vis à vis de tes requêtes et j'en ai profité pour le faire fonctionner sous Linux :
http://code.google.com/p/rwrappers/sour ... unk/LibPNG
Des news de Fred pour les tableaux ?
http://code.google.com/p/rwrappers/sour ... unk/LibPNG
Des news de Fred pour les tableaux ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Salut Progi1984, tu penses mettre RLibPlus à jour pour la 4.30 ?
J'en ai justement besoin
J'en ai justement besoin

Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Je te la mets à jour en début de semaine, surement lundi ou mardi 

Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Ok, je te remercie beaucoup de ce suivi
, cette lib devenant quasiment indispensable, elle me fait gagner un temps fou.
Manque plus que le fichier d'aide...

Manque plus que le fichier d'aide...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
J'ai pu voir que tu avais mis à jour RLibplus sur le forum anglais, mais elle plante sur de simples fenêtres avec un joli Invalid Memory Access (read error at address ...) dans ma boucle d'évènements. Dès que j'utilise des fonctions de ta lib ça foire sur ...
idem sur ...
Code : Tout sélectionner
EventID = WindowEvent()
Code : Tout sélectionner
EventID = WaitWindowEvent()
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.