Generateur de Code39

Partagez votre expérience de PureBasic avec les autres utilisateurs.
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Generateur de Code39

Message par poshu »

C'est très vite fait et pas dutout opti, mais voilà de quoi génerer des codes bar au format Code 39. Y'a pas de sécurité, donc si on tape un caractère qui n'est pas supporté (ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 -$%./+*) , ça plante :p

Code : Tout sélectionner

; Code39 barcode generator module for PB 5.50
; Note : this is DIRTY, a lot of wasted ram and a slow way to process each string. A better solution would be to make a big bit array, and ascii() the string. Sadly, this was done in less than 10 minutes and I'm way to lazy to change it.

DeclareModule Code39 
	Declare.i Generate(String.s)
EndDeclareModule

Module Code39
	EnableExplicit
	#CodebarHeight = 30
	#CharWidth = 19

	Global NewMap char.i() ;{ char map
	char("A") = AllocateMemory(32) : PokeL(char("A"),250031)
	char("B") = AllocateMemory(32) : PokeL(char("B"),250045)
	char("C") = AllocateMemory(32) : PokeL(char("C"),181743)
	char("D") = AllocateMemory(32) : PokeL(char("D"),250341)
	char("E") = AllocateMemory(32) : PokeL(char("E"),182191)
	char("F") = AllocateMemory(32) : PokeL(char("F"),182205)
	char("G") = AllocateMemory(32) : PokeL(char("G"),252965)
	char("H") = AllocateMemory(32) : PokeL(char("H"),159919)
	char("I") = AllocateMemory(32) : PokeL(char("I"),159933)
	char("J") = AllocateMemory(32) : PokeL(char("J"),192997)
	char("K") = AllocateMemory(32) : PokeL(char("K"),246959)
	char("L") = AllocateMemory(32) : PokeL(char("L"),246973)
	char("M") = AllocateMemory(32) : PokeL(char("M"),136687)
	char("N") = AllocateMemory(32) : PokeL(char("N"),247269)
	char("O") = AllocateMemory(32) : PokeL(char("O"),137135)
	char("P") = AllocateMemory(32) : PokeL(char("P"),137149)
	char("Q") = AllocateMemory(32) : PokeL(char("Q"),247717)
	char("R") = AllocateMemory(32) : PokeL(char("R"),138415)
	char("S") = AllocateMemory(32) : PokeL(char("S"),138429)
	char("T") = AllocateMemory(32) : PokeL(char("T"),138725)
	char("U") = AllocateMemory(32) : PokeL(char("U"),251023)
	char("V") = AllocateMemory(32) : PokeL(char("V"),251361)
	char("W") = AllocateMemory(32) : PokeL(char("W"),186255)
	char("X") = AllocateMemory(32) : PokeL(char("X"),251809)
	char("Y") = AllocateMemory(32) : PokeL(char("Y"),155279)
	char("Z") = AllocateMemory(32) : PokeL(char("Z"),188385)
	char("0") = AllocateMemory(32) : PokeL(char("0"),194437)
	char("1") = AllocateMemory(32) : PokeL(char("1"),250927)
	char("2") = AllocateMemory(32) : PokeL(char("2"),250941)
	char("3") = AllocateMemory(32) : PokeL(char("3"),184815)
	char("4") = AllocateMemory(32) : PokeL(char("4"),251781)
	char("5") = AllocateMemory(32) : PokeL(char("5"),187951)
	char("6") = AllocateMemory(32) : PokeL(char("6"),187965)
	char("7") = AllocateMemory(32) : PokeL(char("7"),253061)
	char("8") = AllocateMemory(32) : PokeL(char("8"),193583)
	char("9") = AllocateMemory(32) : PokeL(char("9"),193597)
	char("-") = AllocateMemory(32) : PokeL(char("-"),253089)
	char("$") = AllocateMemory(32) : PokeL(char("$"),181281)
	char("%") = AllocateMemory(32) : PokeL(char("%"),135301)
	char(".") = AllocateMemory(32) : PokeL(char("."),160911)
	char("/") = AllocateMemory(32) : PokeL(char("/"),136225)
	char("+") = AllocateMemory(32) : PokeL(char("+"),135329)
	char("*") = AllocateMemory(32) : PokeL(char("*"),194465)
	char(" ") = AllocateMemory(32) : PokeL(char(" "),194017)
	;}
	
	Procedure.i Generate(String.s)
		Protected state, mf,*tb.byte, char.s
		Protected.i Loop, CharLoop, Result, Len = Len(String)+1
		Protected.i Width = len*#CharWidth+18
		
		String = "*"+String+"*"
		Result = CreateImage(#PB_Any,Width,#CodebarHeight,24,$FFFFFF)
		
		If Result
			StartDrawing(ImageOutput(Result))
			For loop = 0 To Len
				char = Mid(String, loop+1, 1)
				For CharLoop = 0 To 17
					mf = (CharLoop % 8)
					*tb = char(char)+(CharLoop>>3)
					If (*tb\b & (1 << mf)) >> mf
						Line(loop*#CharWidth+CharLoop,0,1,#CodebarHeight,0)
					EndIf
				Next
			Next
			StopDrawing()
		EndIf
		
		ProcedureReturn Result
		
	EndProcedure
EndModule

;example
CompilerIf #PB_Compiler_IsMainFile
	OpenWindow(0,#PB_Ignore,#PB_Ignore,345,50,"Code 39",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
	image = Code39::Generate("SORS TES DOIGTS")
	ImageGadget(1,10,10,0,0,ImageID(image))
	
	Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
CompilerEndIf
Moins de 100 lignes de code, exemple compris :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Generateur de Code39

Message par Kwai chang caine »

C'est super cool !!! et aussi pourrait super utile. 8O
Merci beaucoup POSHU de ton partage 8)

Tu as raison, une fois que les lignes sont créées on se dit, tient, c'est pas si compliqué...(et encore, je comprend pas tout à ton code :oops:)
La periode la plus dure, c'est pas quand on copie/colle un code comme le tiens...
C'est tout ce qui est entre la page blanche et le copié/collé :mrgreen:

Il faut absolument que tu te rende compte que certaines personnes, ne peuvent pas maitriser ce qui pour toi est une evidence.
Il faut que tu fasses la part des choses et accepter que certaines personnes ne sont pas faites pour la programmation, à différents niveaux bien sûr.
Et que ce n'est pas pour cela qu'il ne l'aime pas tout autant que toi
Les diabetiques, ne peuvent manger de sucre, alors que bien souvent il l'adore.
Alors ... que faire de ces "handicapés du golliwog" (Orange mécanique) ???
Les virer, les empecher de pratiquer une occupation qui les passionnent, tout ça pour la simple et bonne raison qu'ils ne sont pas bons ???
Ne réserver la programmation qu'aux maitres ???
Mais un maitre, peut aussi être le padawan d'un autre, a quel niveau place t'on la barriere de la connaissance nécéssaire à la programmation ???
Sans compter que certains "benêt" ont trouvé des idées que les grands maitres n'imaginaient même pas, du fait justement de leur statut... :mrgreen:
Quand tu penses que dans mon entourage, on m'appelle "bill gates" et l'on dit que je suis le meilleur :lol:

Il se peut aussi, que d'emblée, tu saches dans quelle direction commencer
Moi, une fois que j'ai essayé les 360°, je connais à peu prêt ma route :oops:

Alors c'est comme la roulette russe, si j'ai de la chance, ce sera avant le 30e essai..sinon au 360e je le saurais peut être.
Et encore si je m'emmele pas les pinceaux avec les 359 précédents essais.
C'est ce qui m'arrive, depuis 10 ans que j'essaie de piloter les navigateurs ou discuter avec les serveurs.
J'ai essayé dans l'ordre COM, PB post/get tous essayés les nombreux codes trouvés par ci par la, RemoteControl, MozRepl, PhantomJS, CURL, Selenium/Python, Selenium/IDE, Imacro et j'en oublie....
Et pourtant rien ne marche comme je le voudrais, et je pourrais te citer d'autres exemples de chose que j'ai cherché pendant des années, fait des centaines de codes qui ne marchent pas, et du renoncer si j'etais pas aidé
Comme par exemple, le pilotage des DLL PB par VB6 (et là je peux t'assurer que pour l'avoir vécu, c'est pas une hitoire de doigts qui sont à l'intérieur, mais plutot de bras tellement j'ai eu mal pendant des années de recherche :?)
Si je n'avais pas croisé un maitre du VB6, modérateur de VBFrance à paris, je serais toujours en train de chercher depuis plus de 10 ans, ces put... de pointeurs de pointeurs de strings qu'utilise MICROSOFT pour soit disant simplifier la gestion des BSTR et cette saloperie de SafeArray :twisted:

Donc certes, tu as raison, il y a des gens qui ne veulent pas se faire chier, et préferent que ce soit les autres à leur place :?
Mais pense que même une idée tres simple qui pourrait germer dans ton cerveau avec une simplicité non dissimulée, pourrait être une idée qui jamais ne viendrait à certains autres autour de toi.
Des milliers d'inventions simples ont été trouvées, et ont modifiés la face du monde, alors que tout le monde croyait que c'etait impossible ou compliqué.

Il faudrait que tu comprennes que la simplicité comme de nombreuses choses dans la vie, est une chose toute relative.
Et que ce n'est pas parce que l'on ne sait pas, que l'on a pas cherché, et ce n'est pas parce que l'on donne quelque chose à quelqu'un qu'il a compris.
Nous ne sommes pas égaux, loin de là, nous avons des dons plus ou moins aiguisés, dans plus ou moins de domaines.
Et tu seras surement surpris de te trouver dans un domaine que ce soit manuel ou intellectuel, ou tu auras l'air d'une huitre, alors qu'un mec qui ressemble a rien (aucun rapport avec toi :wink:), te diras : "Putain !! c'est simple, sort toi les doigts" alors que t'as essayé à de maintes reprises sans succés.
Je pense que ce jour là, tu penseras à ceux à qui tu as prodigué le même conseil :wink: :mrgreen:

En un mot comme en cent, ne confonds jamais, résultat et volonté :wink:

Quoi qu'il en soit...encore merci beaucoup de partager ta connaissance avec nous 8)
Dernière modification par Kwai chang caine le mer. 07/déc./2016 14:27, modifié 6 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Generateur de Code39

Message par Patrick88 »

ou police de caractère "c39hrp24dhtt.ttf"
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Generateur de Code39

Message par Kwai chang caine »

Cool ta police 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Generateur de Code39

Message par Zorro »

Quand tu penses que dans mon entourage, on m'appelle "bill gates" et l'on dit que je suis le meilleur :lol:
avec la voix de Jesus dans les films Don-Camillo
"et toi .. tu les laisses faire :twisted: "
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Generateur de Code39

Message par poshu »

Kwai chang caine a écrit :plein de choses
Je suis considéré (et je me considère moi même) comme un très mauvais codeux... Au boulot, je ne suis autorisé qu'à prototyper, parce qu'à un moment, en prod faut du code qui marche... Mais là, soyons franc, ça fait moins de 100 lignes. Il suffit d'une approche pragmatique pour y arriver, je vais détailler le processus :

1) lire de la doc. En l'occurence, y'a de la doc française ici : https://fr.wikipedia.org/wiki/Code_39 Qu'est ce qu'il faut en retenir? Chaque caractère a un symbole unique, c'est comme une police, et il n'y a que 43 caractères... Du coup, c'est très simple, il suffit de savoir quel caractère correspond à quelle image et à dessiner cette image.

2) trouver une approche : par exemple, on peut faire un énorme select sur le caractère :

Code : Tout sélectionner

select char
  case "A"
    dessiner le symbole pour A
  case "B"
    dessiner le symbole pour B
  case "C"
    dessiner le symbole pour C
  ...
  case "Z"
    dessiner le symbole pour Z
endselect
Ca va être gros, mais ça va fonctionner. Bon, je voulais un code de moins de 100 lignes, donc je me suis dit qu'il y avait sûrement beaucoup plus efficace que ça. Mon approche : chaque caractère fait la même taille, et est composé soit de blanc, soit de noir, c'est donc binaire (blanc = 0, noir = 1). Donc je pourrais coder chaque caractère par une suite de 0 et de 1... Ca tombe bien, c'est la nature de l'informatique!
Maintenant se pose la question du stockage de ces infos. J'aurai pu faire une structure de type :

Code : Tout sélectionner

Structure caractere
	bit0.b
	bit1.b
	bit2.b
	bit3.b
	bit4.b
	bit5.b
	bit6.b
	bit7.b
	bit8.b
	bit9.b
	bit10.b
	bit11.b
	bit12.b
	bit13.b
	bit14.b
	bit15.b
	bit16.b
	bit17.b
EndStructure
Mais le remplissage aurait été long et rébarbatif... Et ne ne parle pas de toute la ram gâchée! Du coup, j'ai voulu faire un tableau de bit. Direction google, avec la recherche suivante site:purebasic.fr bit array le deuxième lien, c'est vers une page du forum anglais, je le lis entièrement et le dernier post me plait, il y a deux très courts macro, ça marche du premier coup et tout.

Donc, j'ai juste à allouer la mémoire et à la remplir... Mais ça va encore prendre un temps fou et ça va représenter plein de lignes de code... Ok, bon, qu'est ce qui est court à écrire et qui représente au moins 18 bits? Une long! Donc pour remplir mon tableau de bits, il me suffit d'une long par caractère, c'est parfait.
Maintenant, il faut savoir comment remplir ce tableau. Encore une fois, on peut le faire manuellement :

Code : Tout sélectionner

Macro setbit(memory,bitindex)
	*tb.byte
	*tb = memory+(bitindex>>3)
	*tb\b | (1 << (bitindex % 8)) 
EndMacro

*mem = AllocateMemory(32)
setbit(*mem,0)
setbit(*mem,3)
setbit(*mem,7)
setbit(*mem,8)
setbit(*mem,12)
setbit(*mem,13)
setbit(*mem,16)

Debug PeekL(*mem)
le debug en sorti correspondrait à la valeur pour un caractère... Mais j'ai la flemme et ça va être long. Du coup, je vais coder un truc qui code pour moi : je trouve une font code 39, sous paint.net, je crée une image dans laquelle j'écris tous les caractères possible à la suite : http://imgur.com/yosdakI, puis un petit bout de code qui lit cet image. Si y'a une bande noire, il écrit 1, sinon il laisse le bit à zéro. Et l'output, c'est directement la ligne de code!

Code : Tout sélectionner

Macro setbit(memory,bitindex)
	*tb.byte
	*tb = memory+(bitindex>>3)
	*tb\b | (1 << (bitindex % 8)) 
EndMacro

Macro Getbit(memory,bitindex,x)
	*tb.byte
	mf = (bitindex % 8)
	*tb = memory+(bitindex>>3)
	x  = (*tb\b & (1 << mf)) >> mf
EndMacro

UsePNGImageDecoder()
LoadImage(0,"code39.png")
text.s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-$%./+* "
entry.s = ""

StartDrawing(ImageOutput(0))
For char = 0 To 43
	entry = Left(text,1)
	text = Right(text,Len(text)-1)
	*mem = AllocateMemory(32)
	For loop = 0 To 17
		If Point(loop,48*char) <> 16777215
			setbit(*mem,loop)
		EndIf
	Next
	Debug "char("+Chr(34)+entry+Chr(34)+") = AllocateMemory(32) : PokeL(char("+Chr(34)+entry+Chr(34)+"),"+PeekL(*mem)+")"
	FreeMemory(*mem)
Next
StopDrawing()
3) Maintenant j'ai toutes les données, y'a plus qu'à tout mettre en place : on prend la string qu'on veut écrire, on prend chaque caractère indépendamment, on cherche dans la map, et on écrit une ligne noire si le bit vaut 1 ou rien du tout si le bit vaut 0.

Y'a pas de mad skills ou de magie, il suffit de bien poser le problème et de chercher à le résoudre. Et comme je l'ai dit en commentaire dans le code, à peu prêt à la moitié je me suis rendu compte qu'il y avait beaucoup plus simple et efficace, mais j'ai eu la flemme de le faire.
Kwai chang caine a écrit :Et tu seras surement surpris de te trouver dans un domaine que ce soit manuel ou intellectuel, ou tu auras l'air d'une huitre, alors qu'un mec qui ressemble a rien (aucun rapport avec toi :wink:), te diras : "Putain !! c'est simple, sort toi les doigts" alors que t'as essayé à de maintes reprises sans succés.
Je pense que ce jour là, tu penseras à ceux à qui tu as prodigué le même conseil :wink: :mrgreen:
Certainement pas.
On est tous humain, on a tous un cerveau. Si quelqu'un peut faire quelque chose, alors je peux le faire, tant que j'y mets assez de temps. C'est ça se sortir les doigts : décider qu'on va se donner le temps d'apprendre pour réussir. Alors oui, comme mon temps n'est pas illimité, y'a plein de choses que je ne sais pas faire; mais il faut être réaliste : sois tu y mets l'investissement temps/effort nécessaire pour être satisfait du résultat, soit tu laisses tomber. Demander de l'aide, ce n'est pas mal. Par contre, faire des listes au père noël et attendre que ça tombe tout cuit sans faire le moindre effort, je sais que ça ne marche pas depuis que j'ai 6 ans...
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Generateur de Code39

Message par GallyHC »

Bonjour,

Merci pour ce partage. J'avais aussi fait un code pour certain code-barre pour le code39, 128B et EAN-13, j'avais ajouter la possibilité de la grandeur d'une barre en largueur (car certain BL ect... utilise une taille de 2 pixel voir 3 pour certain code), aussi bien que la hauteur et l'affichage du texte ou non, sauf pour l'ean-13 qui a une taille "fixe". Je vais peu être voir a adapter de VB le code 128B ^^ (exemple de ce que j'avais fait en php http://www.koakdesign.info/php/include_ ... =2&write=1).

Dans tout les cas le code parait bien propre je testerais un code avec un lecteur a douche que j'ai pour mes tests ^^.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Generateur de Code39

Message par poshu »

GallyHC a écrit :Bonjour,

Merci pour ce partage. J'avais aussi fait un code pour certain code-barre pour le code39 et 128B, j'avais ajouter la possibilité de la grandeur d'une barre en largueur (car certain BL ect... utilise une taille de 2 pixel voir 3 pour certain code), aussi bien que la hauteur et l'affichage du texte ou non. Je vais peu être voir a adapter de VB le code 128B ^^ (exemple de ce que j'avais fait en php http://www.koakdesign.info/php/include_ ... =2&write=1).

Dans tout les cas le code parait bien propre je testerais un code avec un lecteur a douche que j'ai pour mes tests ^^.

Cordialement,
GallyHC
Si y'a une vrai utilisation de ce code, je suis complètement ok pour le refaire proprement, hein. Y'a beaucoup de perf à gagner en évitant de travailler avec des strings... D'un autre coté je produis 1500 codes bar/seconde avec ça sur mon pc, donc c'est peut être déjà suffisant.

La hauteur est configurable (y'a une constante), je peux aussi facilement ajouter la gestion de l'épaisseur, j'avoue que j'ai juste tester avec un lecteur sur mon ipad, comme ça marche très bien j'ai pas poussé plus loin.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Generateur de Code39

Message par Kwai chang caine »

Merci beaucoup de cette explication détaillée 8)
C'est sûr que quand on lit la solution de n'importe quel probleme, on se demande ou était il vraiment ? :?
En fait le probleme, c'est savoir ou se diriger, puis trouver les infos, et aprés betement savoir les relier pour qu'elles ne fassent qu'une.
Parfois j'y arrive, et parfois non, car betement ce n'étais pas le bon chemin à prendre.
Malgré tout, ce que tu dit te paraitre évident, ne l'est qu'à moitié pour moi
Poshu a écrit :On est tous humain, on a tous un cerveau. Si quelqu'un peut faire quelque chose, alors je peux le faire, tant que j'y mets assez de temps.
C'est une éternelle polémique.
Certains pensent comme toi, moi je pense que nous ne sommes pas égaux et que même si tu t'entraines 26 heures par jours à courir, tu ne batteras pas forcément usain bolt.
Et pourtant...y'en a qui ont essayé crois moi !!! et ils ont eu des problemes !!!! :D
On ne peut quand même pas dire, que tous ceux qui ont essayé, étaient soit peu motivé, soit faineant :lol:

Ca marche pour le corps mais aussi pour l'esprit.
Si tu apprends ou prends connaissance de tout ce qui existe actuellement, ce qui est déjà impossible une vie ne suffirait pas, et bien ce n'est pas pour cela que tu auras l'étincelle d'un PASTEUR, AMPERE, EDISON, etc...

Je pense que nous sommes, ou pas, fait pour quelque chose, et que ce don te facilite le travail.
Mais je pense aussi que quand nous ne sommes pas fait pour quelque chose, ce handicap à contrario te freine, et surtout te plafonne, et que la dextérité du meilleur restera à tout jamais inacessible pour cet "handicapé"
Ce n'est pas qu'une question de volonté et de temps, malheureusement, aux vues des milliers d'heures que j'ai passé devant un ordinateur, depuis l'age de 16 ans avec une volonté à faire palir l'abbé pierre, pour finalement me rendre compte en vous rencontrant que je n'ai guerre progressé.

C'est sûr que par rapport à mon beau frere, je suis un cador, mais par rapport à un cador...et ben je reste quand même un "beau frere" :mrgreen:

Et pourtant tout y était selon ta théorie, en fait si tu a le niveau que tu as actuellement, c'est justement que tu n'es pas handicapé, et surement même doué.
Peut être pas assez d'apres ton entourage qui eux on une autre échelle de valeur, mais sur la mienne, tu creves le plafond (J'ai pas prévu assez de barreau :mrgreen: )

En fait quand on change de milieu, on change d'échelle.
Et dans un certain milieu tu seras à l'échelle 8 par exemple, en changeant de milieu, tu seras d'un coups rétrogradé à 2 sans rien faire de plus ou moins 8O
Il y a un proverbe qui illustre ma théorie : "Ici il est un grand parmis le petits, là bas il demeurera un petit parmis les grands"

Perso, avant de vous connaitre j'étais debout à la proue d'un gros navire, dont j'ai oublié le nom, les bras en croix, et je criais : "Jeeeee suuuuuis le rooooi du mooooonde !!!" :mrgreen:
Et le plus drôle, c'est que c'était "vrai" :lol: dans mon entourage personne ne touche les ordinateurs, nous sommes tous manuels et avons quitté l'école dés que possible, quand encore nous y avons été...
Alors dans ce contexte, pas difficile d'être le "meilleur" devant une machine, en y passant comme tu dit le temps qu'il faut
Puis le hasard de notre rencontre, m'a fait descendre dans la cale du bateau :|
Il y a donc bien eu un changement d'environnement, soit d'échelle qui m'a fait prendre conscience de mon véritable niveau :|
Part vers l'aventure au galooooop!!! a écrit :"et toi .. tu les laisses faire "
Et à la maniére d'un présentateur télé, je vais faire une transition à faire palir michel drucker, car je peux continuer mon texte tout en changeant d'interlocuteur :lol:
Et bien non justement !!!!! :wink:
Si j'étais de mauvaise foi, ou menteur, je te dirais qu'être prétentieux, c'est "paaaaas biiiiiieeeen", et que nous sommes tous égaux, et que bla blabla....
Les vraies raisons sont bassement moins glorieuses.

En fait, je l'ai déjà dit maintes fois, je suis prétentieux de nature, sinon comment j'aurais pu monter à la proue du bateau jouer les jésus des flots (Voir début du texte, psaume 10 aliné 11 :mrgreen:)
Alors baigner dans mon jus entouré de personnes qui me saluent et de par leur comportement informatiquement soumis, font glousser ostentatoirement mon égo et alimentent ma dite prétention à son paroxisme, cela ne pouvait que me convenir.

Mais...car il y a toujours un mais...l'être normalement constitué est dépositaire certe, quoi qu'il m'en coute de le reconnaitre en ce qui concerne ma personne, de défauts, mais aussi de qualités.
Et parmis les miennes, j'ai trouvé le cartesianisme, la droiture, la bonne foi et surtout cette faculté de me rendre tres facilement à l'évidence.
Ces 4 contre un qualités, ont eu tôt fait, de mettre à plat ma prétention, afin que cette derniere ne me fasse pas vivre le pire moment de sollitude que je ne souhaite à personne de vivre, je veux parler de la rencontre d'un "vrai".

J'ai cessé d'être prétentieux en informatique, hors mis dans les lieux ou je suis sûr de rencontrer personne :mrgreen: , en me disant que si par malheur un jour je croisais quelqu'un qui, sur mon échelle, pourrait aisément me pisser sur la tête, et bien le bill gates....il aurait tellement honte.....

Et c'est en énumérant le nombre d'entre vous, qui toujours sur mon échelle "numérique" pourraient s'installer au dessus de moi, que j'en ai déduit deux choses :
- Cette derniere a forcément une forme pyramidale renversée
- Et que même sans m'appeller PAPPIP, ou l'un de ces monstrueux matheux de PB, de m'apercevoir de la probabilité que je croise cette "maudite" personne.

Alors voilà pourquoi mon bon Zorro, je ne les ai jamais laissé faire... :oops:
En fin de compte ce n'est manifestement pas de l'humilité.. mais tout bonnement dû à une progéniture peu glorieuse, de la honte et de la peur.... :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Generateur de Code39

Message par Zorro »

Kwai chang caine a écrit : mais tout bonnement dû à une progéniture peu glorieuse, de la honte et de la peur.... :wink:
hum une conversation recursive qu'on partage depuis ....longtemps

je vais donc recommencer aujourd'hui :)

certes mais ton point de vue est une erreur ! , il faut tout oser, c'est meme a ça qu'on me reconnais :lol:
n'oublie pas ces mecs moche et cons, qui ose draguer de tres belles filles , ils se prennent 150 rateaux par jours
pis un jours, tu les croise avec une bombe au bras , parcequ'une seule aura dit oui :)

faut pas se denigrer, car il y a comme tu le dis des meilleurs (dans un domaine) et des moins bon dans d'autres
si tu veux etre des winner, il suffit de rester dans ton domaine mon ami , certes je ne donnerai pas de cours de math a Pappip
mais question Guitare, c'est autre chose .....
j'ai rencontré de grand Guitariste Pro , mais question Purebasic, c'etait surement des tanches :lol:

ce que je veux dire, c'est que quique ce soit qui se trouve devant toi , forcement, ya un truc que tu fait mieux que lui
du coup , ça relativise pas mal , et donne une assurance, qui permet d'etre a l'aise en toute circonstance :)

meme face a un programmeur , forcement, le mec peut etre une brute dans quasi tout les domaines
mais pas tous ... il suffit de trouver la faille , et là c'est toi le chef ;)

Bruce Lee disait , "soit comme l'eau mon ami" , elle s'adapte, et prends la forme de toutes chose , on ne peut la saisir
on ne peut la frapper ! (c'est une variante, mais c'etait le sens du message ....j'ai la bulle d'aller ouvrir mon "Tao Of Jeet Kund do"
pour reprendre la phrase exacte :) )

[reedit] ... voir la video ici
http://www.dailymotion.com/video/xgcn3b ... eau_people
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Generateur de Code39

Message par poshu »

Kwai chang caine a écrit :moi je pense que nous ne sommes pas égaux et que même si tu t'entraines 26 heures par jours à courir, tu ne batteras pas forcément usain bolt.
Et pourtant...y'en a qui ont essayé crois moi !!! et ils ont eu des problemes !!!! :D
On ne peut quand même pas dire, que tous ceux qui ont essayé, étaient soit peu motivé, soit faineant :lol:

Ca marche pour le corps mais aussi pour l'esprit.
Si tu apprends ou prends connaissance de tout ce qui existe actuellement, ce qui est déjà impossible une vie ne suffirait pas, et bien ce n'est pas pour cela que tu auras l'étincelle d'un PASTEUR, AMPERE, EDISON, etc...
Heureusement, on a pas besoin de se fier à ce que tu penses, il suffit de regarder ce que nous en dit la science :
Alors oui, pour les performances physiques, ton code génétique compte. Mais que dit la science à propos du cerveau? Prenons l'exemple du cerveau d'Einstein, qui a été volé et étudié par moult gens... Bah y'avait peu de différences et aucune conclusive... Sauf cas particuliers (accidents, malformation...) l'humanité est égale avec son cerveau; la seule différence c'est la culture et ça c'est terriblement injuste, mais ça joue surtout à l'école.

De toutes façons, la comparaison est bancale : ici on ne parle pas d'être LE meilleur, mais juste d'arriver à faire ce que l'on veut, peut être plus lentement, peux être moins bien, mais y arriver quand même.

On peu faire un exemple avec ton cas : qu'est ce qui bloque chez toi? Tu te plantes à l'étape 1 :tu fais pas l'effort de lire, tu survoles et tu en tires les conclusions qui t'arrangent, y'a des dizaines de posts sur ce forum qui tendent à le prouver. Je ne doute pas une seconde que tu sois très motivé, mais y'a une grande différence entre la motivation et l'effort...
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Generateur de Code39

Message par JohnJohnsonSHERMAN »

D'accord avec Poshu et Dobro, mais faut reconnaitre que KCC n'est pas totalement dans le tort non plus..

Le mental d'une personne, sa personnalité, son ego (le surmoi freudien), ne sont certes pas le produit de la génétique, mais sont issus premiérement de l'éducation, de la culture, des traditions, de l'identité et des normes sociales inhérentes au milieu dans lequel l'individu passe le plus clair de son temps -en général il s'agira du milieu social de ses parents-. La personnalité se construit sur les bases apportées par la société et la famille lorsque la personne est encore dans l'enfance.... C'est pour ca que selon les origines / civilisations dont une personne est issue son systéme de valeurs et de morale peut varier... C'est cette premiére étape de la création du "moi" qui forge l'identité d'une personne, son patriotisme, son appartenance à un groupe social, à un peuple... Secondement, le "moi" se modifie ensuite tout au cours de l'existence et ce dés que l'individu commence a acquérir de l'autonomie. C'est à ce stade que l'on passe de "mouton" à "personne unique", que l'on se découvre des passions, des intérets, que l'on forme et affine sa pensée, sa philosophie, son sens politique et sa compréhension du monde. Au fur et à mesure des découvertes et de l'expérience, les comportements changent, s'affinent, s'améliorent et l'individu s'adapte au milieu dans lequel il vit (et qu'il s'est choisi selon ses goûts)... Deux choses importantes à mon sens : ces deux états de création de soi cohabitent dans des proportions variables, l'autonomie / autodidactie prenant au fur et a mesure le pas sur l'éducation et l'enseignement au fur et a mesure que l'on avance dans la vie. De plus il est possible à un individu d'infléchir son évolution, finalement de contrôler son ego, et ce en prenant des résolutions, en se forcant à s'adapter, ou à se corriger pour mieux s'intégrer dans un nouveau milieu... L'humain est comme une éponge intelligente qui s'imprégne de ce qui l'entoure, l’intègre, le sublime en quelque chose que nul ne peut expliquer : l'âme... - JohnJohnsonSherman, le 09/12/2016 8)

Voila, un Sherman vous a présenté sa conception personnelle de l'ego humain... :)

Bref, retenons que tout reste possible en échange de volonté, de persévérance et de résignation... Même se changer soi même, tendre vers des objectif nouveaux, se forcer à aller chercher à comprendre, se forcer à réussir parce qu'on s'est fixé un objectif inaltérable, mais ce a condition de
-se fixer un ojectif
-ne pas en démordre
"A coeur vaillant, rien d'impossible" - "Impossible n'est pas Francais"
Ben oui... Y'a que ceux qui ne savaient pas que c'était impossible qui ont réussi... Combien de découvertes scientifiques ne sont-elles pas le fruit du hasard, de l' "illumination" avant la recherche elle même ??

C'est pour ca qu'au final je pense qu'il faut et qu'il suffit de motivation et de persévérance pour arriver à ses fins : regardez ce noob de Sherman que je suis : je suis un noob dans un tas de trucs, mais je continue à chercher à comprendre, a expérimenter, a tester des trucs qui ne me servent à rien sinon à apprendre... Genre un serveur qui me sert à rien, une page web qui me sert à rien, des application qui ne me servent à rien non plus... :mrgreen: C'est pas en jetant l'éponge au premier obstacle que ca va passer, c'est en recommencant sans cesse jusqu'a ce que ca rentre :)
Dire que "c'est le destin", que "on ne peut rien changer, c'est comme ca", c'est refuser de reconnaitre une forme d'échec personnel, de "couardise" qui fait q'on s'est arrêté en route... Alors on se dit tant pis, c'est le destin, je suis pas fait pour ca... Et on se prive de l'échec formateur, l'échec qui forme plus encore que la réussite, on se retourne vers une forme de molesse, de passivité face à la vie, on la laisse couler sans essayer de l'exploiter.... Mais merde mais si on est même plus maitre de soi-même, ou va-t-on? :)
Le destin, c'est qu'une excuse envers son propre échec... La vie il faut l'exploiter, éviter de la calculer à l'avance, profiter de ce qu'elle donne sur l'instant pour le réinvestir plus tard, se servir de tout ce qu'elle donne pour se renforcer, apprendre, aller de l'avant et jamais en arriére...
Je veux pas plagier la signature de Dobro, mais oui, carpe diem ! Le mec prostré dans son canap' en train de se lamenter sur son destin profitera moins que celui qui oeuvre sans cesse vers son but... le but dans la vie c'est LE truc le plus important... Moi j'ai des buts... Certains sont incertains, d'autres tellement sûrs que je suis assuré à 99.999% de les réaliser (sauf décés par atomisation instantanée avant ^^).

Allez, sur ce mon roman philosophique commence à m'énerver moi, alors si vous avez lu jusqu'ici, chapeau... Je vous offre.. rien :mrgreen:

Tout est possible !
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Répondre