Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    19

    [C++] Modifica automatica del path di destinazione file

    Buonasera,
    ho scritto un programma che mi chiede 2 numeri.
    Una volta immessi, mi chiede se voglio salvarli in un file.
    Se la risposta è positiva, mi chiede il path di destinazione e il nome del file (es. C:\Prova\Numeri.csv).
    Poi mi chiede se voglio salvare la somma dei numeri in un file e, se la risposta è positiva, mi chiede ancora path e nome del file con la somma (es.C:\Prova\Numeri_Somma.csv ).
    Poi lo stesso con sottrazione, moltiplicazione e divisione; il programma funziona come deve e sono felice.
    Ora l'idea è quella di migliorarlo!!!
    E' possibile fare in modo che venga richiesto solo il path e il nome la prima volta ( C:\Prova\Numeri.csv) e fare in modo che le altre volte, nel caso che la risposta all'if sia positiva, si crei automaticamente il file di destinazione con la stessa estenzione (.csv) aggiungendo automaticamente _Somma.csv _Differenza etc.etc (e quindi C:\Prova\Numeri_Somma.csv, C:\Prova\Numeri_Differenza.csv....)?
    Riepilogando:
    Vuoi salvare i numeri? Si
    Digita path e nome del file: C:\Prova\Numeri.csv
    Vuoi salvare la somma? Si (crea automaticamente C:\Prova\Numeri_Somma.csv)
    Vuoi salvare la differenza? Si (crea automaticamente C:\Prova\Numeri_Differenza.csv)
    Grazie per l'aiuto

  2. #2
    Innanzitutto devi splittare la stringa (se programmi in C++, sarà una std::string) per ottenere il nome del file.

    In windows vuol dire prendere la stringa, partendo dalla fine, prima dell'ultimo \
    In linux cambia con /

    Per farlo puoi usare std::string::find_last_of e poi prendere la stringa da quell'indice con std::string::substr

    Una volta ottenuta la stringa, intanto controlli se non sia uguale a "." e ".." (senza apici) che potrebbero trarre in inganno sembrando nomi di file ma sono cartelle, sia in linux che in windows (rappresentano la cartella dove si trova e la cartella superiore)

    Ora la stringa può contenere ".*", "*.*", "*", "*."

    Controlla se sia presente il punto, se c'è allora prendi la stringa alla sinistra del punto, quello sarà sicuramente il nome del file.
    Se non c'è il punto allora tutta la stringa è il nome del file. Aggiungi il suffisso e fai quello che devi fare

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    19
    Ottimo,
    programma funzionante,
    Grazie mille, non conoscevo i comandi
    std::string::find_last_of e std::string::substr
    per modificare i path di file.

    Grazie ancora lolide!!!

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.