18 julio, 2014

Acceso a carpetas temporales en Windows

 A veces, por motivos de seguridad, por no asignar demasiada memoria, etc. se tienen que crear archivos temporales. A estos ficheros se les puede asignar la extensión .tmp u otra, y procede guardarlos en la carpeta de almacenamiento temporal que viene establecida en las variables de entorno TEMP y TMP. En Windows 7 es:

 C:\Users\nombre de usuario\AppData\Local\Temp


  La manera de acceder a estas carpetas en Visual Basic, JScript y C# es similar:


  En Visual Basic:

'El método GetSpecialFolder admite tres valores: 0, 1 y 2, siendo 2 carpeta temporal
Function CreateTempFolder() As String
 Const TemporaryFolder = 2
 Dim fso, tfolder
 Set fso = CreateObject("Scripting.FileSystemObject")

    Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
  
 CreateTempFolder = tfolder

End Function

  En JScript:

var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");

function GetTempFolder()
{
   var tfolder, TemporaryFolder = 2;
   tfolder = fso.GetSpecialFolder(TemporaryFolder);
   
   return(tfolder);
}

  En C#:

public string GetTempFolder()
{
      string folder = Path.GetTempPath();
      return folder;
 }



  Un saludo

22 mayo, 2014

Aprender a programar en Codecademy

  Para aprender a programar hay muchos caminos, tradicionalmente se ha realizado en:
- academias
- universidades
- escuelas de formación profesional
- etc.


  Los caminos autodidactas siempre han sido más complicados, pero una vez se logra aprender la base son muy factibles, esto es, aprender de manuales, tutoriales, etc.


  Actualmente, ha adquirido gran relevancia la formación on-line, en este campo hay multitud de escuelas, academias, universidades, etc. Voy a recomendar una gratuita con la que se puede aprender a programar en :
  • HTML/CSS
  • JavaScript
  • jQuery
  • Python
  • Ruby
  • PHP
  Se trata de Codecademy, una startup que está logrando una importante financiación y una gran popularidad gracias a su novedosa forma de enseñar a programar. Nada más hay que registrarse y comenzar cualquiera de sus cursos.


  Un saludo

28 diciembre, 2009

Error al importar librería msado15.dll de ADO

Al programar en Visual C++ 5.0 para un sistema de gestión de bases de datos (database management system, DBMS) relacional pensado para pequeñas aplicaciones de Windows como Microsoft Access 2000, utilizando la interfaz orientada a objetos, ActiveX Data Objects (ADO) para el acceso a la base de datos. Nos encontramos con que tenemos que importar en el fichero de cabecera (.h) correspondiente mediante la directiva # import la dll msado15.dll, pues bien, después de ponernos a tirar código resulta que al compilar nos encontramos con los siguientes errores :
  • ..\Debug\msado15.tlh(403) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
  • ..\Debug\msado15.tlh(1098) : error C2504: 'Connection15' : base class undefined
  • ..\Debug\msado15.tlh(1266) : error C2504: 'Recordset21' : base class undefined
  • ..\Debug\msado15.tlh(1286) : error C2504: 'Recordset20' : base class undefined
  • ..\Debug\msado15.tlh(1320) : error C2504: 'Recordset15' : base class undefined
  • ..\Debug\msado15.tlh(1706) : error C2504: 'Fields20' : base class undefined
  • ..\Debug\msado15.tlh(1740) : error C2504: 'Fields15' : base class undefined
  • ..\Debug\msado15.tlh(1794) : error C2504: 'Field20' : base class undefined
  • ..\Debug/msado15.tli(293) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct _Connection *const ' to 'struct IUnknown *'
  • ..\Debug/msado15.tli(481) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct _Recordset *const ' to 'struct IUnknown *'
  • ..\Debug/msado15.tli(491) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct Recordset21 *const ' to 'struct IUnknown *'
  • etc.
El error está perfectamente documentado en una revisión disponible en el sitio de soporte de Microsoft. El identificador del artículo es 190726 - Última revisión: martes, 18 de noviembre de 2003 - Versión: 2.0 y el título de la revisión: #Import de Visual C++ 5.0 produce errores con ADO versión 2.0 donde se comenta que se produce en los windows 95, 98 y NT, lista a la que añadimos también el 2000. De entre las alternativas ofrecidas, la mejor es sin lugar a dudas la primera, es decir, instalar Visual Studio, Service Pack 3 porque todo se debe a un antiguo problema de la característica #import del compilador que se corrigió en la versión full del correspondiente service pack 3. La obtención de este service pack puede hacerse de varias maneras, siendo la más cómoda acceder al centro de descargas de Microsoft o hacer un ftp a Microsoft, para lo que aconsejo el sitio FileWatcher y bajarse el vssp3 versión full que consta de nueve ficheros (de unos 10 MB cada uno) :
  1. VSSP3_1.EXE
  2. VSSP3_2.CAB
  3. VSSP3_3.CAB
  4. VSSP3_4.CAB
  5. VSSP3_5.CAB
  6. VSSP3_6.CAB
  7. VSSP3_7.CAB
  8. VSSP3_8.CAB
  9. VSSP3_9.CAB
Lo primero una vez hecha la descarga es expandir el service pack ejecutando VSSP3_1.EXE, preferiblemente desde un prompt MS-DOS. Esto creará el directorio vs97_sp3 y ya podremos ejecutar el SETUP.EXE para instalar el service pack que soluciona nuestro problema.

Infolinks In Text Ads