7
votes

Les quines manquantes: Visual Basic (pour les applications)

Aujourd'hui, j'ai surfé quelques articles au hasard Geek-Stuff sur Wikipedia pour obtenir ma dose quotidienne de connaissances inutiles. J'ai trébuché Accross Quines, qui sont des programmes qui impriment leur propre code source. J'ai trouvé qu'un excellent moyen de faire mal au cerveau, alors j'ai commencé à travailler sur une quiné dans VBA. J'ai eu deux bonnes raisons:

  1. Je n'ai pas pu trouver une quine écrite dans VBA
  2. VBA vous encourage à écrire un code maladroit qui fait mal au cerveau

    Voici mon chef-d'œuvre: xxx

    Mon défi: pouvez-vous la rendre encore plus courte (et de préférence plus gênante)? ​​


0 commentaires

3 Réponses :


7
votes

Que diriez-vous de

Sub q() '//in mdl1
Debug.Print Workbooks(1).VBProject.VBComponents(5).CodeModule.Lines(1, 3)
End Sub


1 commentaires

Je savais que quelqu'un viendrait avec ça;) +2 pour la longueur, -1 pour une bonne lisibilité;)



3
votes

Je ne sais pas si quelqu'un lit cet anomore de fil mais voici un encore plus court, basé sur la quiné de Das_weezul. Il est indépendant de "Option explicite" (contrairement à Das_weezul's) et il est indépendant de l'application Office dans laquelle vous travaillez (c'est-à-dire Excel, accès, mot, etc.) - Contrairement à Alex K. Utilisez-le dans la fenêtre immédiate (CTRL + G):

c="c=#:?replace(c,chr(35),chr(34) &c &chr(34))":?replace(c,chr(35),chr(34) &c &chr(34))


4 commentaires

Vous pouvez même faire que quatre caractères plus courts: c = "c = # #: A = CHR (34) :? Remplacer (C, CHR (35), A & C & A)": A = CHR (34): ? Remplacez (C, CHR (35), A & C & A)


Je lis toujours ça: D C'est génial de voir ce fil revenir à la vie. Cette solution a l'air vraiment slick!


Désolé @ALEX K, Dorian a saisi le trône: D


@Dorian j'ai ajouté quelques astuces à cette réponse et vous pouvez le voir ci-dessous - laissez-moi savoir si vous trouvez autre chose qui la rend plus courte



2
votes

Quelques nouvelles modifications de @dorian I de la réponse's obtient le concount de la vba quique à descendre à 77 octets xxx

Les astuces de clé qui permettent de se produire sont l'utilisation du caractère 7, , sur le caractère 35, # , et utiliser une addition de chaîne plutôt que la concaténation à la chaîne.


1 commentaires

Très bien. Je ne savais même pas qu'il est possible d'ajouter des chaînes dans VBA.