# Editor DIZ ## Situació En el meu dia a dia com a `SysOp` d'un `BBS`, necessito informar el contingut dels fitxers que poso a disposició dels meus usuaris a les diferents àrees de fitxers. Per a tal efecte es va crear fa molts anys el format `file_id.diz`[^1], àmpliament reconegut i establert com a estàndard, amb una especificació tècnica [^2] ben definida. Per tant, cada fitxer en la meva base de fitxers hauria de tenir inclòs un fitxer de tipus `file_id.diz` descrivint el seu contingut. I aquests fitxers `file_id.diz`s'han de crear i editar. ## Problema Hi ha disponibles infinitats d'editors de text, de tota mena i tecnologia, però cap d'específic per a tractar aquest tipus de fitxers. Dels pocs que hi ha, o són de tipus privatiu, o només funcionen en entorns `MS Windows`. Pel que fa als editors generalistes, no permeten -o no he sabut trobar-ho- establir un format d'edició que preservi les dues grans condicions dels fitxers `file_id.diz`: un màxim de 10 línies, i un màxim de 45 caràcters per línia. ## Solució Necessitava un editor multiplataforma, de codi obert, que permetés crear i editar els fitxers de tipus `file_id.diz`, que respectés els condicionants del seu format, i que fos usable i intuïtiu per al `SysOp` que el fes servir. Per tant, he desenvolupat un *script* en `python`, que dona resposta a tots aquests requeriments. Donades les meves limitacions com a desenvolupador, m'he basat en la llibreria estàndard `tkinter`[^3] per a proveir una interfície gràfica -simple però efectiva- que doni aquesta usabilitat i funcionalitat. Aquest *script* permet: - Arrencar un `GUI` amb font monoespai per a visibilitzar uniformement les línies. - Accedir a un panell d'exploració de fitxers navegable. - Obrir, desar, visualitzar i editar textos de 10 línies i 45 caràcters per línia. - Un comptador per línia amb els caràcters escrits en temps real sobre els 45 permesos. - Línies independents entre sí, de manera que es pugui editar un text lliurement[^4]. - Tractar aquests textos com a `file_id.diz` o `elnomquesigui.diz`. - Executar-se en qualsevol plataforma que diposi de `Python`, la biblioteca estàndard `tkinter` (i s'entén que un *Entorn d'Escriptori*[^5]). ## Execució Des de l'intèrpret de comandes: ```bash python diz-editor-py ``` o en funció del vostre entorn: ```bash python3 diz-editor-py ``` `` [^1]: https://en.wikipedia.org/wiki/FILE_ID.DIZ [^2]: En aquest mateix repositori: [FILEID.TXT](https://shipyard.thefreebay.net/eotb/gui-diz-editor/src/branch/main/FILEID.TXT "FILE_ID.DIZ Specification v1.9 by Richard Holler") [^3]: https://docs.python.org/3/library/tkinter.html [^4]: Tot i que no es recomana, aprofitar les línies per fer [Art ASCII](https://ca.wikipedia.org/wiki/Art_ASCII "Viquipèdia"). [^5]: https://ca.wikipedia.org/wiki/Entorn_d%27escriptori