Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [mfc c++]Creazione File

    Ciao a tutt, vi spiego il mio problema: sto usando VC++ 6.0 con le mfc per creare un programma. Voglio che se si clicca su un pulsante viene creato un file e per fare ciò ho usato le funzioni del C.Ora il mio problema è che il file non viene creato anche se in debug vedo che il puntatore a file non è null.
    codice:
    void CProvaDlg::OnButton2()
    {
       FILE *reg;
       CString s1,s2;
       cap1.GetWindowText(s1);
       cap2.GetWindowText(s2);
       if(cap1.GetWindowTextLength()==0 || cap2.GetWindowTextLength()==0)
          MessageBox("Errore! Inserire tutti i dati!","ERRORE");
       else{
          reg=fopen("prova.txt","w");
          fprintf(reg,"prova\n");
          fclose(reg);
       }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sicuro che non venga creato? Mi sembra strano ... molto probabilmente non lo cerchi nella cartella giusta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    No, non viene creato. Poi se compilo un codice del genere funziona:
    codice:
    void CProvaDlg::OnButton2()
    {
       FILE *reg;
       CString s1,s2;
       cap1.GetWindowText(s1);
       cap2.GetWindowText(s2);
       if(cap1.GetWindowTextLength()==0 || cap2.GetWindowTextLength()==0)
          MessageBox("Errore! Inserire tutti i dati!","ERRORE");
     //  else{
          reg=fopen("prova.txt","w");
          fprintf(reg,"prova\n");
          fclose(reg);
      // }
    }

    Sarà un bug del compilatore?

  4. #4
    Prima di eseguire quel pezzo di codice, c'è questo:
    codice:
    void CMy90Dlg::OnButton1() 
    { 
    	CFileDialog dlg(TRUE, _T("exe"), _T("*.exe"));
    	if(dlg.DoModal()==IDOK){
    		m_cap2.SetWindowText(dlg.GetPathName());;
    	}
    }
    Il fatto è che questo pezzo di codice mi fa cambiare la directory corrente dell'applicazione, come mai?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da darth fener
    No, non viene creato. Poi se compilo un codice del genere funziona:
    codice:
    void CProvaDlg::OnButton2()
    {
       FILE *reg;
       CString s1,s2;
       cap1.GetWindowText(s1);
       cap2.GetWindowText(s2);
       if(cap1.GetWindowTextLength()==0 || cap2.GetWindowTextLength()==0)
          MessageBox("Errore! Inserire tutti i dati!","ERRORE");
     //  else{
          reg=fopen("prova.txt","w");
          fprintf(reg,"prova\n");
          fclose(reg);
      // }
    }
    Ma in questo caso vedi la MessageBox?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    NO, e poi lì non so perchè il file me lo crea nella directory giusta dove si trova il programma.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Metti un breakpoint nella riga della fopen ed esegui in debug ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8

    Re: [mfc c++]Creazione File

    Originariamente inviato da darth fener
    Ora il mio problema è che il file non viene creato anche se in debug vedo che il puntatore a file non è null.
    Quando? prima o dopo la chiamata alla fopen? Considera che prima della chiamata alla fopen il puntatore al file ha un contenuto indefinito, perché non hai inizializzato il puntatore a NULL.
    Il compilatore non ti restituisce nessun warning? Magari sei in modalità unicode e stai passando un char * alla fopen mentre dovresti passargli un wchar * o viceversa.

    Riduci in ogni modo il problema ai minimi termini ed effettua questo test:
    codice:
    void CProvaDlg::OnButton2()
       FILE *reg =  fopen("prova.txt","w");
       if (NULL != reg){
          fprintf(reg,"prova\n");
          fclose(reg);
       }
    }

  9. #9
    Ho trovato il problema! Era per colpa della dialog di selezione del file che faceva cambiare la directory corrente del mio programma e quindi il file veniva creato nella directory che er stata selezionata

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da darth fener
    Ho trovato il problema! Era per colpa della dialog di selezione del file che faceva cambiare la directory corrente del mio programma e quindi il file veniva creato nella directory che er stata selezionata
    Come ti avevo detto nella mia prima risposta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.