Aprire un file a scelta

di il
5 risposte

Aprire un file a scelta

Ciao a tutti

ho creato un programma in excel scrivendo una macro e vorrei crearne uno uguale in C++ per avere un file exe
ho scaricato dev c++ (ho windows 7) e iniziato a programmare
di c++ conosco poco, un pò di basi, ma non ho molta esperienza
cmq mi sono bloccato perchè dovrei permettere la selezione di un file txt e prenderne delle info e poi riaggiornare in automatico ogni x sec perchè il file viene aggiornato di continuo.

ho cercato nel forum e in giro per la rete, ho provato a far girare degli esempi che ho trovato ma non mi funzionano
ho ad esempio sentito parlare di openFileDialog1
cosa mi consigliate?

grazie

5 Risposte

  • Re: Aprire un file a scelta

    openFileDialog1
    cos'è? mai sentito parlare.

    Stai programmando in modalità GUI oppure console? Usi Api Windows oppure solo ANSI C.
    per aprire e leggere un file ci sono un inifinità di modi a seconda di cosa ti garba di +.
    Un paio di esempi:
    http://www.cplusplus.com/reference/iostream/ifstream
    e


    Un esempio preso a caso da MSDN.
  • Re: Aprire un file a scelta

    Grazie per il tuo aiuto

    sulla differenza tra API Windows e ANSI C non ne so ancora niente, mi puoi dire dove posso trovare una spiegazione?

    allora intanto ho provato a buttar giù qualcosa ma la finestra per la selezione del file non mi si apre
    #include <Windows.h>
    #include <Commdlg.h>
    #include <stdio.h>
    
    OPENFILENAME ofn;
    char szFileName[500];
    
    int main(int argc, char* argv[])
    {
    
    szFileName[0] = '\0';
    memset(&ofn, 0, sizeof(ofn));
    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = NULL;
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = sizeof(szFileName);
    ofn.hInstance = NULL;
    ofn.lpstrFilter = TEXT("Type Libraries *.tlb,*.olb\0*.tlb;*.olb\0All Files*.*\0*.*\0\0");
    ofn.nFilterIndex = 1; 
    ofn.Flags= OFN_FILEMUSTEXIST; 
    int bRes;
    bRes = GetOpenFileName(&ofn);
    MessageBox(0,szFileName,"-",MB_OK);
    
    system("pause");
    return 0;
    }
    mi da errore
    [Linker error] undefined reference to `GetOpenFileNameA@4'
    ld returned 1 exit status
  • Re: Aprire un file a scelta

    Aggiungi nel linker l'importazione della libreria Comdlg32.lib
    oppure prova a mettere sta stringa all'inizio del codice dopo li include
    
    #pragma comment(lib,"Comdlg32.lib")
    
    Non sono sicuro che funzioni perche non so se DevC++ accetta il caricamento delle librerie tramite i pragma.
  • Re: Aprire un file a scelta

    skynet ha scritto:


    Aggiungi nel linker l'importazione della libreria Comdlg32.lib
    oppure prova a mettere sta stringa all'inizio del codice dopo li include
    
    #pragma comment(lib,"Comdlg32.lib")
    
    Non sono socuro che funzioni perche non so se DevC++ accetta il caricamento delle librerie tramite i pragma.
    no da stesso errore
  • Re: Aprire un file a scelta

    Devi vedere le proprietà del linker di DevC++. Io non c'è l'ho e quindi non posso aiutarti.
    GetOpenFileName è definito in windows.h ed è svilupato in comdlg32.dll. Per farlo funzionare devi aggiungere al linker la libreria comdlg32.lib. Io ho visualStudio e non devC++. Vedi le sue opzioni.
Devi accedere o registrarti per scrivere nel forum
5 risposte