Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    41

    [c++] Finestra di scelta di un file aiuto!

    Salve a tutti, sono nuovo nel forum e volevo risolvere un problema che mi ha bloccato nello svilutto di un programma.

    sto sviluppando questa applicazione in microsoft visual c++ 2010 (applicazione console clr)
    per evitare di far inserire ogni volta il path del file a mano (siccome sono path abbastanza lunghi) devo fare in modo che l'utente selezioni un file tramite una finestra (in giro su internet ho visto che molti consigliano di usare GetOpenFileName() ) e una volta scelto il file devo aprirlo e fare delle cose

    #include "stdafx.h"
    #include "resource.h"
    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    #include <cstdlib>
    #include <string>
    #include <Windows.h>
    #include <CommDlg.h>


    using std::cout;
    using std::cin;
    using std::string;


    OPENFILENAME ofn ;
    char szFile[500] ;

    using namespace System;

    void SceltaFile()
    { ZeroMemory( &ofn , sizeof( ofn));
    ofn.lStructSize = sizeof ( ofn );
    ofn.hwndOwner = NULL ;
    ofn.lpstrFile = (LPWSTR)szFile ;
    ofn.lpstrFile[0] = '\0';
    ofn.nMaxFile = sizeof( szFile );
    ofn.lpstrFilter = TEXT("All\0*.*\0Text\0*.TXT\0")
    ofn.nFilterIndex =1;
    ofn.lpstrFileTitle = NULL ;
    ofn.nMaxFileTitle = 0 ;
    ofn.lpstrInitialDir=NULL ;
    ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST ;
    GetOpenFileName( &ofn );
    MessageBox ( NULL , ofn.lpstrFile ,(LPCTSTR)szFile, MB_OK);
    }

    Questo è 1 pezzo del codice inserito nel programma che ho trovato su internet, purtroppo non so usare questi comandi quindi non saprei come gestirlo.
    Spero che qualcuno mi riesca a spiegare come funziona e se va bene perchè vorrei capire quello che metto nei programmi che faccio.

    la variabile szFile memorizza il path del file che seleziono però dopo ogni carattere ci inserisce uno 0.
    perchè? come faccio ad avere il path "pulito"? perchè se provo a spostarlo in un'altra variabile
    (che poi utilizzo per aprire il file) mi copia solo il primo carattere.
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Molto probabilmente stai lavorando con Unicode.

    Devi trovare l'impostazione (proprietà del progetto) per Unicode ed eliminarla.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    41
    Nelle opzioni del progetto ho trovato questo:

    _UNICODE;UNICODE;%(PreprocessorDefinitions)

    però anche se lo cancello non cambia nulla, szFile è sempre "sporco"

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ora che faccio più attenzione, ma perché con un progetto CLR utilizzi le API?

    Se devi utilizzare il framework .NET, allora utilizza le classi del framework, se vuoi utilizzare le API allora crea un progetto Win32.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    41
    ok grazie mille, ho spostato tutto su console win32 e tolto la codifica unicode.
    ora il path è pulito.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Originariamente inviato da frebarr
    Questo è 1 pezzo del codice inserito nel programma che ho trovato su internet, purtroppo non so usare questi comandi quindi non saprei come gestirlo.
    Spero che qualcuno mi riesca a spiegare come funziona e se va bene perchè vorrei capire quello che metto nei programmi che faccio.
    Questo tipo di pratica non si chiama "Programmazione", bensì "Patchwork" e non è contemplata in questo forum. Il forum è a disposizione degli utenti che hanno del codice (che almeno riescono a capire!) da sistemare. Se prendi del codice "a caso" su internet nella speranza che faccia quello che tu immagini, non farai molta strada (a prescindere dalla bontà del codice che trovi). Non vedo nemmeno come si possa inserire del codice nei propri programmi senza capirne il funzionamento... si rischia di inserire codice malevolo senza nemmeno rendersene conto.

    Il forum, inoltre, non è a disposizione per spiegazioni di funzionamento su codice scritto da terzi: lettura, analisi, testing e quant'altro sono operazioni che richiedono tempo e che dovresti fare tu.

    Inoltre, c'è un regolamento interno, che delinea le modalità di posting del codice (uso dei tag CODE).
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.