Table Unicode
Re: Table Unicode
Tu as oublié un "Next" avant avant dernière ligne
Sinon ça chie tjrs en unicode pour ma part.
Sinon ça chie tjrs en unicode pour ma part.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
oublié un "next" ? mais ça compile chez moi
Bon, j'ai modifié pour le coup "numéro de gadget > 10000"
Dis moi si c'est mieux

Bon, j'ai modifié pour le coup "numéro de gadget > 10000"
Dis moi si c'est mieux
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Table Unicode
ça ne veut rien savoir, j'ai essayé sans japbe, directement avec l'ide PB 4.50 x64, j'ai maintenant un
Ligne 90 the specified #image is not initialized..
Ligne 90 the specified #image is not initialized..

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
je n'ai pas d'image en ligne 90 ????
Je suis en x86, donc il y a un truc avec le x64
Je suis en x86, donc il y a un truc avec le x64
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Table Unicode
non non, sur mon x64 avec ide purebasic cela se compile bien
@++

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
j'ai trouvé le bug en faisant un essai sous Vista. C'était un problème avec le dessin du chr(10)
en gros mon code dessine un chr(10) (ça fait un petit carré blanc avec bordure noire), du moins sur XP, sous Vista non. Du coup, je ne filtre plus les caractères et je me retrouve avec un final de 32600 caractère à afficher donc 32600 images + 32600 gadget, alors forcement, plus de place en mémoire et crash.
Essaie à nouveau le code
en gros mon code dessine un chr(10) (ça fait un petit carré blanc avec bordure noire), du moins sur XP, sous Vista non. Du coup, je ne filtre plus les caractères et je me retrouve avec un final de 32600 caractère à afficher donc 32600 images + 32600 gadget, alors forcement, plus de place en mémoire et crash.
Essaie à nouveau le code
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- Le psychopathe
- Messages : 764
- Inscription : jeu. 03/mars/2005 19:23
Re: Table Unicode
Cela fonctionne toujours pas en unicode : Windows SevenLe Soldat Inconnu a écrit :j'ai trouvé le bug en faisant un essai sous Vista. C'était un problème avec le dessin du chr(10)
en gros mon code dessine un chr(10) (ça fait un petit carré blanc avec bordure noire), du moins sur XP, sous Vista non. Du coup, je ne filtre plus les caractères et je me retrouve avec un final de 32600 caractère à afficher donc 32600 images + 32600 gadget, alors forcement, plus de place en mémoire et crash.
Essaie à nouveau le code
J'ai la barre de progression et après rien, le fentre est vide.
@+
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
j'ai encore modifier le code, cela donne quoi ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- Le psychopathe
- Messages : 764
- Inscription : jeu. 03/mars/2005 19:23
Re: Table Unicode
toujours pareilLe Soldat Inconnu a écrit :j'ai encore modifier le code, cela donne quoi ?

-
- Messages : 57
- Inscription : mer. 09/juin/2010 23:47
Re: Table Unicode
Si ça peut aider, car j'ai le même problème en unicode
A la ligne 15, si j'initialise la variable Maximum à 10274 en lieu et place des 32767 d'origine, ça fonctionne.
Il faut un certain temps pour afficher les caractères, mais il n'y a pas de plantage.
Par contre, si je met 10275 alors là ça plante et je me retrouve avec le message d'erreur "The specified #Image is not initialized" à la ligne 95 If StartDrawing(ImageOutput(Table()\Image))
A la ligne 15, si j'initialise la variable Maximum à 10274 en lieu et place des 32767 d'origine, ça fonctionne.
Il faut un certain temps pour afficher les caractères, mais il n'y a pas de plantage.
Par contre, si je met 10275 alors là ça plante et je me retrouve avec le message d'erreur "The specified #Image is not initialized" à la ligne 95 If StartDrawing(ImageOutput(Table()\Image))
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
Nouvelle version du code, car l'ancien n'est pas très compatible avec les Font de 7
Toujours pareil, il faut compiler en mode Unicode pour avoir la table Unicode ou compiler en mode ASCII pour avoir la table ASCII
Toujours pareil, il faut compiler en mode Unicode pour avoir la table Unicode ou compiler en mode ASCII pour avoir la table ASCII
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication du programme :
; Création de la table ASCII ou UNICODE (en fonction du mode de compilation)
Structure Structure_Table
Chr.s
x.i
y.i
EndStructure
NewList Table.Structure_Table()
; Création de la fenêtre et de la GadgetList
CompilerIf #PB_Compiler_Unicode
Titre.s = "Table Unicode"
Maximum = 32768
CompilerElse
Titre.s = "Table ASCII"
Maximum = 255
CompilerEndIf
If OpenWindow(0, 0, 0, 600, 400, Titre, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
End
EndIf
; Temps1 = ElapsedMilliseconds()
Define WindowDefaultFontName.s
Define ncm.NONCLIENTMETRICS
ncm\cbSize = SizeOf(NONCLIENTMETRICS)
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, SizeOf(NONCLIENTMETRICS), @ncm, 0)
WindowDefaultFontName = PeekS(@ncm\lfMessageFont\lfFaceName, 32)
LoadFont(0, WindowDefaultFontName, 8, #PB_Font_HighQuality)
LoadFont(1, WindowDefaultFontName, 10, #PB_Font_HighQuality)
ScrollAreaGadget(0, 0, 0, 600, 370, 600, 370, 50, #PB_ScrollArea_BorderLess)
ProgressBarGadget(1, 0, 0, 600, 30, 32, 100)
#Taille = 16
CreateImage(0, #Taille, #Taille, 24)
Dim CaracterePrecedent.l(#Taille - 1, #Taille - 1)
Dim Caractere.l(#Taille - 1, #Taille - 1)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(0))
FrontColor($FFFFFF)
AddElement(Table())
Table()\Chr = " "
For n = 33 To Maximum
Box(0, 0, #Taille, #Taille, 0)
DrawText(0, 0, Chr(n))
For x = 0 To #Taille - 1
For y = 0 To #Taille - 1
Caractere(x, y) = Point(x, y)
Next
Next
If CompareMemory(@Caractere(), @CaracterePrecedent(), #Taille * #Taille * 4)
DeleteElement(Table())
Else
AddElement(Table())
Table()\Chr = Chr(n)
CopyMemory(@Caractere(), @CaracterePrecedent(), #Taille * #Taille * 4)
EndIf
Temps = ElapsedMilliseconds()
If Temps > TempsMemoire + 200
TempsMemoire = Temps
SetGadgetState(1, 50 * n / Maximum)
While WindowEvent() : Wend
EndIf
Next
DrawingFont(FontID(1))
Caractere_Dimension = TextHeight("a")
StopDrawing()
FreeImage(0)
; Temps2 = ElapsedMilliseconds()
; MessageRequester("Temps", Str(Temps2 - Temps1))
Caractere_Dimension + 4
Largeur = Int(570 / Caractere_Dimension)
Hauteur = Round(ListSize(Table()) / Largeur, #PB_Round_Up) * Caractere_Dimension
Largeur * Caractere_Dimension
SetWindowColor(0, $FFFFFF)
If Hauteur <= 32767
If CreateImage(1, Largeur, Hauteur, 24)
If StartDrawing(ImageOutput(1))
Box(0, 0, Largeur, Hauteur, $FFFFFF)
DrawingMode(#PB_2DDrawing_Transparent | #PB_2DDrawing_Outlined)
DrawingFont(FontID(1))
Ligne = 0
Colonne = 0
ForEach Table()
Table()\x = Colonne * Caractere_Dimension
Table()\y = Ligne * Caractere_Dimension
Box(Table()\x, Table()\y, Caractere_Dimension, Caractere_Dimension, $C0C0C0)
DrawText(Table()\x + (Caractere_Dimension - TextWidth(Table()\Chr)) / 2, Table()\y + (Caractere_Dimension - TextHeight(Table()\Chr)) / 2, Table()\Chr, 0)
Colonne + 1
If Caractere_Dimension * Colonne >= Largeur
Colonne = 0
Ligne + 1
EndIf
Temps = ElapsedMilliseconds()
If Temps > TempsMemoire + 200
TempsMemoire = Temps
SetGadgetState(1, 50 + 50 * ListIndex(Table()) / ListSize(Table()))
While WindowEvent() : Wend
EndIf
Next
StopDrawing()
EndIf
FreeGadget(1)
SetGadgetAttribute(0, #PB_ScrollArea_InnerWidth, Largeur)
SetGadgetAttribute(0, #PB_ScrollArea_InnerHeight, Hauteur)
SetGadgetColor(0, #PB_Gadget_BackColor, $FFFFFF)
ImageGadget(3, 0, 0, Largeur, Hauteur, ImageID(1))
Else
SetGadgetState(1, 100)
EndIf
CloseGadgetList()
HideGadget(0, 0)
EndIf
StringGadget(1, 0, 370, 100, 30, "")
SetGadgetFont(1, FontID(1))
StringGadget(2, 100, 370, 400, 30, "")
SetGadgetFont(2, FontID(1))
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 3
If EventType() = #PB_EventType_LeftClick
x = WindowMouseX(0)
y = WindowMouseY(0) + GetGadgetAttribute(0, #PB_ScrollArea_Y)
ForEach Table()
If x >= Table()\x And x < Table()\x + Caractere_Dimension And y >= Table()\y And y < Table()\y + Caractere_Dimension
Break
EndIf
Next
SetGadgetText(1, "Chr(" + Str(Asc(Table()\Chr)) + ")")
SetGadgetText(2, Right(GetGadgetText(2), 30) + Table()\Chr)
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Table Unicode
fonctionne bien en ascii et unicode sous w7 x64.
Je n'avais jamais réalisé le nombre de Kanji en unicode...
Bon programme, propre et utile !
Je n'avais jamais réalisé le nombre de Kanji en unicode...

Bon programme, propre et utile !
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Table Unicode
J'ai une erreur, ligne 97 mais jsuis sur EEEPC avec XP

Code : Tout sélectionner
If CreateImage(1, Largeur, Hauteur, 24)
The height is negative
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Table Unicode
vérifie avec un debug que WindowDefaultFontName contient bien le nom d'une police.
Sinon, regarde la taille de ListSize(Table()) avant le bug.
Merci
Sinon, regarde la taille de ListSize(Table()) avant le bug.
Merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Table Unicode
Je n'ai pas mon EEEPC sous la main aujourd'hui
Mais je viens d'essayer avec VISTA et un portable normal et ça marche du feu de dieu
Donc peut etre que ça venait de XP, ou des capacités du EEEPC, j'essaierais de refaire l'essais des que je pose la main sur lui
En tout cas merci de ton partage
Mais je viens d'essayer avec VISTA et un portable normal et ça marche du feu de dieu

Donc peut etre que ça venait de XP, ou des capacités du EEEPC, j'essaierais de refaire l'essais des que je pose la main sur lui
En tout cas merci de ton partage
