Foros > Visual Basic: Cargar un TXT mediante DLL

  1. kalgar

    Mensajes [1] - Enviado el Miércoles 29 de Agosto de 2007 a las 07:13hs

    Hola a todos,

    estoy haciendo un programa que tiene que cargar un archivo TXT para su posterior procesamiento. La carga se debe hacer linea a linea (para seleccionar cuales se quieren y cuales sobran) y mediante una DLL creada en vc6 (es mas rapido que con los procedimientos propios de vb6). A continuacion adjunto el codigo que tengo para ambas funciones tanto en la parte de la DLL como en la de vb.

    En la DLL:
    extern "C"
    int WINAPI FAR PASCAL _stdcall DLLcargarTXT (char* fich,char* texto)
    {
    char cadena[160];
    char* puntero;
    //strcpy(puntero,texto);
    puntero = texto;
    int i=0;

    // Abre un fichero de entrada
    ifstream fe(fich);

    fe.getline(cadena,160);

    while (!fe.eof())
    {
    puntero = strcat(puntero,cadena);
    puntero = strcat(puntero,"
    ");
    fe.getline(cadena,160);
    }
    fe.close();
    strcpy(texto,puntero);
    return 1;
    }

    Ahora la parte de vb:
    Private Sub Command1_Click()

    Dim texto, archivo As String

    Select Case True
    Case Option1
    archivo = "c:Pruebasinnopsys.txt"
    Call DLLcargarTXT(archivo, texto)
    RichTextBox1.Text = texto
    Case Option2
    archivo = "c:Pruebasgenepix.txt"
    End Select
    End Sub

    En principio deberia devolver el texto del archivo TXT dentro de la variable texto, pero por algun motivo no lo hace, aunque en la DLL la variable texto si que tiene los datos que yo quiero.

    Si alguien sabe como solucionarlo, se lo agradeceria inmensamente...

  2. bOrEg

    Mensajes [13] - Enviado el Domingo 16 de Setiembre de 2007 a las 02:53hs

    Saludos amigo, no se si te sirva de algo, paro hace mucho lei que las dll de windows retornan valores de tipo unicode y el vb las lee como otro tipo que no recuerdo bien cual es y es por eso que no las reconoce el vb o las lee mal, en fin? no se si sea tu caso pero por si acaso te lo comento, suerte!

  3. bOrEg

    Mensajes [13] - Enviado el Domingo 16 de Setiembre de 2007 a las 02:56hs

    Perdon la solucion era, hacer un barrido de todo tu texto y eliminar el caracter 0 para que lo reconozca el visual


    ej. 3040506070 para que quede asi 34567 algo parecido la verdad es que se hace?comparando los caracteres con?el chr(0) y en caso de ser iguales se omite. Suerte


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API