¿Como hacen los progrmas los profesionales?

Iniciado por prometheus48, 29 Octubre 2011, 19:02 PM

0 Miembros y 3 Visitantes están viendo este tema.

Queta

¿Y no creen que la reflexión más acertada es usar el lenguaje que necesites, y se adapte más a tus necesidades, en aquel momento?
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

x64core

Cita de: Queta en  7 Noviembre 2011, 21:53 PM
¿Y no creen que la reflexión más acertada es usar el lenguaje que necesites, y se adapte más a tus necesidades, en aquel momento?

+1 , eso mismo dije/digo ;D

BlackZeroX

#32
Cita de: Queta en  7 Noviembre 2011, 21:53 PM
¿Y no creen que la reflexión más acertada es usar el lenguaje que necesites, y se adapte más a tus necesidades, en aquel momento?

Es lo que dije desde un principio... Revisar PROS y CONTRAS y Definir que lenguaje usar, pero somos unos tercos a la de a Benito juarez y tenemos que decir X, Y cosa de un lenguaje solo por que no nos parece o tenemos una Ignorancia respecto a el... pero con esa simpe y acertada opinion se resuleve esto o que creen?...

Cita de: Raul100 en  7 Noviembre 2011, 20:54 PM
REFLEXION: MIGRAR A C++

Para lagunos para otros no.

Dulces Lunas!¡.
The Dark Shadow is my passion.

WHK

Hola,

Cita de: BlackZeroX (Astaroth) en  6 Noviembre 2011, 07:00 AMSobre las constantes no habra problema debido a que hasta ahora no se han modificado pero si agregado mas de este modo nativamente en VB6 si seria un problema esto tiene una solucion usando las apis con sus constantes respectivas de este modo NO habra ningun problema... de hecho NO HAN CAMBIADO (Lo he comprobado en el IDE) o diferido las constantes internas de vb6 con las del S.O., lo que si es que sE HAN AGREGADO MAS CONSTANTES que por obvias razones en vb6 no existen de manera nativa, pero eso tiene solucion (No quiero defender VB6 en este aspecto solo quiero aclarar este punto y/o extenderlo de una manera mas documentada).

Por ejemplo usar GetFileAttributes function + File Attribute Constants (hasta donde he visto no han cambiado las constantes)

Si han cambiado bastante y por lo mismo a veces he tenido problemas con muchas funciones y he tenido que crear una especie de framework en un bas para compatibilizar funciones con xp y 7 como por ejemplo:

Código (vb) [Seleccionar]
Public Function Is_Dir(Ruta As String) As Boolean
On Error GoTo error
' El atributo en Windows XP es
' 16: Archivo normal
' 22: Unidad de almacenamiento
' El atributo en Windows 7 es
' 17: Archivo normal
' 65558: Unidad de almacenamiento
If _
  GetAttr(Ruta) = 16 Or _
  GetAttr(Ruta) = 17 Or _
  GetAttr(Ruta) = 22 Or _
  GetAttr(Ruta) = 65558 _
Then
  Is_Dir = True
Else
  Is_Dir = False
End If
Exit Function
error:
Is_Dir = False
End Function


Ahora anda a saber que valores tendrán en windows 8.

Cita de: BlackZeroX (Astaroth) en  7 Noviembre 2011, 20:33 PM
Por ejemplo:

* Escalabilidad-> Como es el mismo diseño ambos tienen esa misma propidad (Sin emcabio si el codigo es desastrozo, poco se podra hacer independientemente del lenguaje P.j: Codigo Repetido, ).

Me vas a disculpar pero ahi discrepo porque para mi visual basic podrá ser todo lo util que quieras y hacerte una bomba si quieres pero no es para nada escalable porque si yo mañana hago una aplicación en visual basic y se lo entrego a una empresa en un svn entonces va a ser medio complicado que dicha empresa pueda gastar dinero en encontrar "buenos" programadores en visual basic 6 porque ningún programador serio va a gastar tiempo en gastar dinero para estudiar un lenguaje que no vale la pena, de hecho ninguna institución de enseñanza media y avanzada te enseñan visual basic, si te enseñan pascal para aprender basic pero es diferente porque solo te enseñan sintaxis, pero al momento de aprender a programar te enseñan cosas como java y c++ para orientarse a objetos mayormente y es una de las filosofias de php4 y 5 con respecto a las versiones anteriores y perl.

O sea, muchos saben programar en vb6 pero es como si preguntaras quien sabe programar en autoit, muchos aficionados saben y lo mas probable es que te encuentres un experto en autoit pero no vas a hacer una casa de barro por mejor que lo sepas hacer, algiuen que quiere pagar por una casa contrata a alguien que lo haga de material solido y si, antes las casas eran de barro y funcionaban bien pero no voy a llevar a vivir a mi familia a una casita de barro teniendo los recursos para estar en un departamento, lo mismo creo que piensan la mayoría de los que si pagan por desarrollar aplicaciones.

O sea, en el mundo laboral entra a cualquier pagina de freelance o pregunta a cualquier empresa que se dedique a cualquier tipo de desarrollo, son muy pocos los que aun persisten con visual basic y cada dia se van extinguiendo mas por muy bonito o exitante que sea usarlo.

Pero bueno, esto tiene pinta del tipico post flamewar donde no llegamos a ningun lado xD pero igual se han sacado bastantes conclusiones con respecto al tema y no veo que mas se pueda aportar acá, ya muchos tienen claro que para aplicaciones grandes debes usar aplicaciones de mas bajo nivel u orientadas a objeto como java, c++ o .net pero no quiere decir que visual basic pueda o no pueda hacer "cosas".

CitarREFLEXION: MIGRAR A C++
La verdad es que yo tampoco migraría a c++ sino lo veo mas bien como una posibilidad para aprender y hacer aplicaicones como la gente pero ahora mismo estoy aprendiendo otros lenguajes que no derivan para nada del c como python/gtk

BlackZeroX

#34
Cita de: WHK en  8 Noviembre 2011, 16:42 PM
Hola,

Si han cambiado bastante y por lo mismo a veces he tenido problemas con muchas funciones y he tenido que crear una especie de framework en un bas para compatibilizar funciones con xp y 7 como por ejemplo:

Código (vb) [Seleccionar]
Public Function Is_Dir(Ruta As String) As Boolean
On Error GoTo error
' El atributo en Windows XP es
' 16: Archivo normal
' 22: Unidad de almacenamiento
' El atributo en Windows 7 es
' 17: Archivo normal
' 65558: Unidad de almacenamiento
If _
  GetAttr(Ruta) = 16 Or _
  GetAttr(Ruta) = 17 Or _
  GetAttr(Ruta) = 22 Or _
  GetAttr(Ruta) = 65558 _
Then
  Is_Dir = True
Else
  Is_Dir = False
End If
Exit Function
error:
Is_Dir = False
End Function


Ahora anda a saber que valores tendrán en windows 8.

OSO OSO MENTIROSO

lo que te retorna GetAttr() y GetFileAttributes function() es lo mismo, un LONG donde albergan los atributos y para consultar dichos atributos debes hacer mascaras de bits...

UN LONG PUEDE ALBERGAR 32 ESTADOS O FLAGS y COMO ES LOGICO CONBINARLOS ENTRE SI PARA OBTENER NUEVOS ESTADOS ( hablo de un long de 32 bits... en uno de 64 puede meter 64 estados/flags y es la misma marrana solo que en otro cochinero ).

17 = FILE_ATTRIBUTE_DIRECTORY or FILE_ATTRIBUTE_READONLY
17 = 16 or 1

es decir un directorio sera FILE_ATTRIBUTE_DIRECTORY... y como es logico un directorio solo se lee... no se escribe... es por ello que es 17 ( FILE_ATTRIBUTE_DIRECTORY or FILE_ATTRIBUTE_READONLY ) un gran acierto para W$ 7...

En si lo que debes hacer CORRECTAMENTE es esto para verificar si es una carpeta (Ignorando cualquier otro atributo):

Código (vb) [Seleccionar]


Public Function exitsPath(ByRef sRuta As String) As Boolean
On Error Resume Next
    exitsPath = GetAttr(sRuta)
    Err.Clear
End Function

Public Function isDir(ByRef sRuta As String) As Boolean '// Funciona en cualquier W$
    If (exitsPath(sRuta)) Then
        isDir = ((GetAttr(sRuta) And vbDirectory) = vbDirectory)
    End If
End Function



Revisa ATENTAMENTE cada valor de las CONSTANTES y veras que CADA VALOR es un bit de un long DISTINTO... en la MSDN lo dice claramente...

Es por ello que con SetAttr() puedes pasarle combinaciones de attributos a un archivo y ademas de que ya tiene por deault el atributo de FILE_ATTRIBUTE_ARCHIVE le puedo setear tambien FILE_ATTRIBUTE_SYSTEM, FILE_ATTRIBUTE_READONLY y FILE_ATTRIBUTE_HIDDEN

de esta manera:

Código (vb) [Seleccionar]


SetAttr sRuta, FILE_ATTRIBUTE_ARCHIVE or FILE_ATTRIBUTE_SYSTEM or FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN



y GetAttr() me RETORNARA ESAS CONSTENTES EN UN SOLO valor tipo LONG y PARA COLSULTARLAS SOLO TENGO QUE APLICAR MASCARAS como ya lo he dicho anterior mente...

un ejemplo (Puedes cambiar la ruta por una carpeta o lo que quieras funciona de la misma manera):

Código (vb) [Seleccionar]


Private Sub Form_Load()
Dim sRuta       As String
    sRuta = "c:\file.txt"
    MsgBox IIf(((GetAttr(sRuta) And FILE_ATTRIBUTE_HIDDEN) = FILE_ATTRIBUTE_HIDDEN), "Es un archivo visible", "Es una rchivo Oculto")
    SetAttr sRuta, (GetAttr(sRuta) Or FILE_ATTRIBUTE_HIDDEN)     '   //  Le dejamos los atributos que ya tenia pero le agregamos el atributo oculto.
    MsgBox IIf(((GetAttr(sRuta) And FILE_ATTRIBUTE_HIDDEN) = FILE_ATTRIBUTE_HIDDEN), "Es un archivo visible", "Es una rchivo Oculto")
    SetAttr sRuta, (GetAttr(sRuta) Xor FILE_ATTRIBUTE_HIDDEN)    '   //  Le dejamos los atributos que ya tenia pero le quitamos el atributo oculto.
End Sub



y es los mismo que

Código (vb) [Seleccionar]


Private Sub Form_Load()
Dim sRuta       As String
    sRuta = "c:\file.txt"
    MsgBox IIf(((GetFileAttributes(sRuta) And vbHidden) = FILE_ATTRIBUTE_HIDDEN), "Es un archivo visible", "Es una rchivo Oculto")
    SetFileAttributes functionsRuta, (GetFileAttributes(sRuta) Or FILE_ATTRIBUTE_HIDDEN)     '   //  Le dejamos los atributos que ya tenia pero le agregamos el atributo oculto.
    MsgBox IIf(((GetFileAttributes(sRuta) And vbHidden) = FILE_ATTRIBUTE_HIDDEN), "Es un archivo visible", "Es una rchivo Oculto")
    SetFileAttributes sRuta, (GetFileAttributes(sRuta) Xor FILE_ATTRIBUTE_HIDDEN)    '   //  Le dejamos los atributos que ya tenia pero le quitamos el atributo oculto.
End Sub



y como es de esperarse FUnCIONA EN WIN XP, VISTA; 7 y FUNCIONARA EN W$ 8 (y si no me cotro un webo).

Un dato Or de VB6 no maneja un Or de sentencia... es un OR de Operacion BINARIA... es decir el resultado que retorne uno se le hace una operacion binaria a nivel bit por ende TODA la premisa es evaluada aun que solo ya haya salido alguna verdadera... en pocas palabras NO es el or normal (como en C)... es un or de operaciones binarias...

Mirate esto...
http://foro.elhacker.net/programacion_visual_basic/vb6_es_tonto-t340559.0.html;msg1669513#msg1669513

Como dije solo se HAN AGREGADO no he visto ninguna constante DOCUMENTADA que se haya cambiado... aun asi No importa ya te di una solucion a un problema que ignorabas!¡.

---------------------------

Lo de la Escalabilidad esta a discucion y nunca llegaremos a un acuerdo o tu que crees?, sea VB6, C/C++, Cobol (No hay muchos programadores de este lenguaje... y aun asi es usado), Foltran, etc... cada uno tiene PROS y CONTRAS.

Dulces Lunas!¡.
The Dark Shadow is my passion.

adastra

Vamos a ver, lo que han preguntado es muy claro "Como se hacen los programas los profesionales?"
No han pedido clases de VB6.

BlackZeroX

#36
Cita de: adastra en  9 Noviembre 2011, 16:36 PM
Vamos a ver, lo que han preguntado es muy claro "Como se hacen los programas los profesionales?"
No han pedido clases de VB6.

Desde cuando argumentar, diferir y/o aclarar un comentario es dar una clase?... yo sabia que era defender un aspecto... si no sabes como se hace eso es TIPICO que saltes con este tipo de comentarios. Los ejemplos los pude haber puesto en C y NO IMPLICA QUE ESTE DANDO UNA CLASE ni defendiendo un lenguaje o me equivoco?.



#include <stdio.h>
#include <windows.h>
#include <WinDef.h>
#include <WinBase.h>

int main()
{
    const char FileName[] = "c:\\file.txt";
    DWORD   dwRet = 0;

    dwRet = GetFileAttributesA((LPCSTR)FileName);

    if (( dwRet & FILE_ATTRIBUTE_HIDDEN) == FILE_ATTRIBUTE_HIDDEN) {    //  se puede obviar == FILE_ATTRIBUTE_HIDDEN
        printf ("Es un archivo Invisible atributos: %d\n", dwRet);
    } else {
        printf ("Es un archivo visible atributos: %d\n", dwRet);
    }

    SetFileAttributesA ((LPCSTR)FileName, (dwRet | FILE_ATTRIBUTE_HIDDEN));
    dwRet = GetFileAttributesA((LPCSTR)FileName);

    if (( dwRet & FILE_ATTRIBUTE_HIDDEN) == FILE_ATTRIBUTE_HIDDEN) {    //  se puede obviar == FILE_ATTRIBUTE_HIDDEN
        printf ("Es un archivo Invisible atributos: %d\n", dwRet);
    } else {
        printf ("Es un archivo visible atributos: %d\n", dwRet);
    }

    SetFileAttributesA ((LPCSTR)FileName, (dwRet ^ FILE_ATTRIBUTE_HIDDEN));
    dwRet = GetFileAttributesA((LPCSTR)FileName);

    printf ("El archivo se quedo con los atributos: %d\n", dwRet);

    return EXIT_SUCCESS;
}



Si te molesta que ARGUMENTE sobre UN PUNTO ERRADO de alguien mas dando y fundamentando mi aclaracion pues ya es alguna cosa SICOTICA tuya.

Dulces Lunas!¡.
The Dark Shadow is my passion.

adastra

 :huh:
Sin comentarios... no voy a escribir nada más en este tópico, ya nos hemos salido bastante del tema, prefiero seguir dedicado en mis estudios (que estan enfocados en algo mucho más serio que vb6).

x64core


BlackZeroX

#39
Cita de: adastra en  9 Noviembre 2011, 19:21 PM
prefiero seguir dedicado en mis estudios (que estan enfocados en algo mucho más serio que vb6).

:xD eso espero :silbar: hare lo mismo y me ire a estudiar otros lenguajes, que como dijo WHK esto tiene pinta de FlameWar...

Dulces Lunas!¡.
The Dark Shadow is my passion.