{"id":972,"date":"2014-03-10T15:02:19","date_gmt":"2014-03-10T21:02:19","guid":{"rendered":"https:\/\/www.lastdragon.net\/?p=972"},"modified":"2014-03-10T15:05:46","modified_gmt":"2014-03-10T21:05:46","slug":"harbour-continuando-con-clipper-5-2","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=972","title":{"rendered":"Harbour continuando con Clipper 5.2"},"content":{"rendered":"<p>En los \u00faltimos d\u00edas con el asunto de <a href=\"https:\/\/www.lastdragon.net\/?p=950\">framework para manejar modelado de base de datos con un ORM<\/a> record\u00e9 que hace unos 20 a\u00f1os esto ya se hac\u00eda de una forma tan f\u00e1cil que sorprender\u00eda en concepto de usabilidad que tan de moda esta ahora.<\/p>\n<p>Muchos paquetes profesionales de contabilidad, puntos de venta y en general cualquier aplicaci\u00f3n que se tratara de manejar informaci\u00f3n estaban escrita en este lenguaje. Me refiero a Clipper.<\/p>\n<p>Clipper que lenguaje tan sencillo, cualquiera pod\u00eda escribir aplicaciones en Clipper hacer las GUIs era sencillo unas cuentas l\u00edneas de c\u00f3digo pod\u00edan convertir cualquier programa en una poderosa aplicaci\u00f3n con manejo de men\u00fas, formularios y todo esto en la consola sin APIs graficas.<\/p>\n<p>Clipper en realidad nace como un compilador de Dbase, es como si ahora compilaras un proyecto en Microsoft Access que dicho sea de paso se puede.<\/p>\n<p>El \u00e9xito de clipper estuvo en su capacidad de escribir con pocas l\u00edneas, sencillas l\u00edneas aplicaciones completas, pero ahora este lenguaje ya no existe por lo menos no como lo conoc\u00eda antes, los compiladores para MSDOS ya no no corren correctamente, ni las aplicaciones que fueron compiladas. Actualmente Windows env\u00eda el siguiente error.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/clipper\/fail.jpg\" alt=\"\" width=\"425\" height=\"350\" \/><br \/>\n<a href=\"https:\/\/www.lastdragon.net\/misarchivos\/clipper\/fail.jpg\">Ver mas grande<\/a><\/p>\n<p>Afortunadamente siempre hay gente rescatando cosas y pas\u00e1ndolas a c\u00f3digo de fuente abierta y muchas veces con licencia GPL<\/p>\n<p>El proyecto harbour  &#8211; > http:\/\/harbour.github.io\/<\/p>\n<p>Harbour es un compilador 100% compatible con clipper 5.2 , el ultimo que yo use y tal vez de los \u00faltimos desarrollados comercialmente como clipper, por lo que si eres un novato que quiere aprender a programar, este lenguaje rescatado del limbo es tu elecci\u00f3n, es mucho mas sencillo que Visual Basic y en el se construyeron aplicaciones poderosas en la \u00e9poca del MSDOS.<\/p>\n<p>Para darse una idea de qu\u00e9 f\u00e1cil es meter archivos en una base de datos con un archivo DBase. El pseudo c\u00f3digo seria.<\/p>\n<blockquote><p>use archivo.dbf<br \/>\nReplace variable with campoendb<br \/>\nReplace variable2 with otrocampoendb<br \/>\nCommit<\/p><\/blockquote>\n<p>Con esas l\u00edneas ya habr\u00edas agregado registros a una table dentro del archivo.dbf<\/p>\n<p>Llamo a lo anterior pseudo c\u00f3digo por que tiene mas de 20 a\u00f1os que no escribo nada en clipper solo tengo vagos recuerdos de c\u00f3mo eran las cosas, de hecho para escribir este art\u00edculo tuve que desempolvar un libro que estuvo guardado por casi 20 a\u00f1os y notas que yo mismo escrib\u00ed en mis libretas de apuntes de aquellos d\u00edas<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/clipper\/clipper.jpg\" alt=\"\" width=\"425\" height=\"350\" \/><br \/>\n<a href=\"https:\/\/www.lastdragon.net\/misarchivos\/clipper\/clipper.jpg\">Ver mas grande<\/a><\/p>\n<p>Con los apuntes una r\u00e1pida lectura a mi libro de clipper y n\u00f3tese que no quise ir a buscar nada a google solo para recordar como era recuperar informaci\u00f3n en mis primeros d\u00edas de aficionado programador, con esa lectura r\u00e1pida, hice este programa, no es una aplicaci\u00f3n por qu\u00e9 no cumple con lo m\u00ednimo para ser una aunque lo parezca. <a href=\"https:\/\/www.lastdragon.net\/?p=742\">Diferencias entre aplicaci\u00f3n y programa<\/a><\/p>\n<p>Este programa simplemente pone unos campos para entrada de datos y un men\u00fa con algunas opciones, con el  se puede dar cuenta de lo f\u00e1cil que era escribir la interface de usuario en la consola.<\/p>\n<p>Hacer lo que clipper hacia en men\u00fas y formularios con unas cuentas l\u00edneas era algo monstruoso considerarlo en C, Pascal, QBasic o cualquier otro lenguaje de la \u00e9poca. Incluso hoy el c\u00f3digo necesario para hacer la GUI es excesivo, no se nota por que se usan herramientas de ARRASTRAR Y SOLTAR para dibujar el GUI en un IDE de programaci\u00f3n  que escribe todo el c\u00f3digo autom\u00e1ticamente, con clipper esas GUIS se pod\u00edan hacer con un simple bloc de notas<\/p>\n<p>c\u00f3digo de ejemplo:<\/p>\n<blockquote><p>set color to 15\/1<br \/>\nclear<\/p>\n<p>store space (10) to nombre<br \/>\nstore space (10) to apellido<\/p>\n<p>@ 5,5 say &#8220;Nombre&#8221;<br \/>\n@ 6,5 say &#8220;Apellido&#8221;<br \/>\n@ 5,15 get nombre<br \/>\n@ 6,15 get apellido<br \/>\nread<\/p>\n<p>set message to 23 center<\/p>\n<p>@ 10,5 prompt &#8220;Opcion de menu 1&#8221; message &#8220;soy la descripcion 1 en la<br \/>\nbarra&#8221;<br \/>\n@ 11,5 prompt &#8220;Opcion de menu 2&#8221; message &#8220;soy la descripcion dos en la<br \/>\nbarra&#8221;<br \/>\n@ 12,5 prompt &#8220;Opcion de menu 3&#8221; message &#8220;soy la ultima opcion en la<br \/>\nbarra&#8221;<\/p>\n<p>menu to seleccion<\/p>\n<p>? &#8220;Valor de seleccion es &#8220;<br \/>\n? seleccion<\/p><\/blockquote>\n<p>Ejecutando el c\u00f3digo en GNU\/Linux<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"\/\/www.youtube.com\/embed\/tu99DVjDjHE\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>harbour   tiene versiones binarias para casi todos los sistemas operativos modernos.<\/p>\n<p>GNU\/Linux, MacOS X, Windows y si eres valiente como  yo, con el c\u00f3digo fuente el cual puedes descargar y compilar en el OS que quieras.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En los \u00faltimos d\u00edas con el asunto de framework para manejar modelado de base de datos con un ORM record\u00e9 que hace unos 20 a\u00f1os esto ya se hac\u00eda de una forma tan f\u00e1cil que sorprender\u00eda en concepto de usabilidad que tan de moda esta ahora. Muchos paquetes profesionales de contabilidad, puntos de venta y&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-972","post","type-post","status-publish","format-standard","hentry","category-programacion"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=972"}],"version-history":[{"count":3,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/972\/revisions"}],"predecessor-version":[{"id":975,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/972\/revisions\/975"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}