THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => C / C++ / C# => Topic started by: gt on September 26, 2011, 13:00:10 pm



Title: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: gt on September 26, 2011, 13:00:10 pm
Παιδια εχω ενα προβλημα..εχω ενα κωδικα στην c++ και θελω οταν τρεχει να μου ανοιγει αρχειο με την ημερομηνια την υπαρχουσα...πως μπορει να γινει αυτο...?

ΥΣ1:Ξερω να δουλευω και να ανοιγω αρχεια γενικα
ΥΣ2:Ξερω να παιρνω την ημερομηνια απο το συστημα.

Σημειωση:Ουσιαστικα το προβλημα μ αναγεται στο να δημιουργησω ενα αρχειο txt μεσα απο το προγραμμα και σαν ονομα αρχειου να μπαινει το ονομα μεταβλητης..  :-\



mod edit: κεφαλαία τίτλου


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: Καμένος on September 26, 2011, 13:11:53 pm
Με παρόμοιο τρόπο με αυτο:

http://notfaq.wordpress.com/2006/08/30/c-convert-int-to-string/

Βάζεις τη μεταβλητή στο string και το χρησιμοποιείς σαν όνομα αρχείου



Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: gt on September 26, 2011, 13:21:19 pm
Το θεμα μου ειναι πως θα γραψω...πχ(κομματια του κωδικα...)

char date[9];
    _strdate(date);// παιρνω την ημερομηνια



ofstream  out;
    out.open("ΕΔΩ ΘΕΛΩ ΝΑ ΜΠΕΙ Η ΗΜΕΡΟΜΗΝΙΑ.txt")

Δεν πολυ καταλαβα τον τροπο σου.. :-[


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: Καμένος on September 26, 2011, 13:30:22 pm
Α έχεις ήδη char.. Κάντο έτσι:

char date[9];
_strdate(date);// παιρνω την ημερομηνια
std::string s(date),filename;
filename=s+std::string(".txt");
ofstream  out;
out.open(filename.c_str());


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: gt on September 26, 2011, 13:40:04 pm
Φιλε μ το εκανα αυτο,εκανε compile χωρις λαθος ,τρεχει το προγραμματακι,αλλα δεν μου εμφανιζει το αρχειο...Λογικα το δημιουργει αλλα δεν ξερω σε ποιο directory...μηπως ξερεις που παει..?να σε διευκολυνω εχω τον dev...sorry και για το πρηξιμο αλλα παιδευομαι καιρο τωρα μ αυτο..


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: Καμένος on September 26, 2011, 21:39:34 pm
Χμμ λογικά όπου είναι δηλωμένο το project που έκανες. Κάπου στα Documents υποθέτω...


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: gt on September 27, 2011, 01:28:11 am
Δεν ξερω ρε φιλε...δεν το βρισκω πουθενα ενω τα αλλα αρχεια που δημιουργω μου τ εμφανιζει κανονικα εκει που εχω το project..μηπως εχεις να μ προτεινεις κατι αλλο...?(ολοκληρωμενο αν γινεται..)


Title: Re: ONOMA AΡΧΕΙΟΥ ΣΤΗΝ C++ ME THN HMEROMHNIA
Post by: djifos on September 27, 2011, 01:39:45 am
Δεν ξερω ρε φιλε...δεν το βρισκω πουθενα ενω τα αλλα αρχεια που δημιουργω μου τ εμφανιζει κανονικα εκει που εχω το project..μηπως εχεις να μ προτεινεις κατι αλλο...?(ολοκληρωμενο αν γινεται..)

δοκίμασε να βάλεις το absolute path που θες να αποθηκευτεί το txt πριν από την ημερομηνία δλδ:

out.open(ΑΒSOLUTE_PATH/"ΕΔΩ ΘΕΛΩ ΝΑ ΜΠΕΙ Η ΗΜΕΡΟΜΗΝΙΑ.txt");

όπου ABSOLUTE_PATH είναι της μορφής πχ για Linux: "/home/[username]/Desktop/[yourFolder]"
ή για Windows: "C:/Users/[username]/Desktop/[yourFolder]"


Title: Re: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: zisis00 on September 27, 2011, 03:21:49 am
google sprintf


Title: Re: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: gt on September 27, 2011, 10:12:47 am
Παιδια ολα οσα μου ειπατε τελικα ειναι σωστα,γιατι δοκιμασα να βαλω γενικα μια μεταβλητη με string να εμφανιζεται στο filename και μου τ εμφανισε κανονικα...αρα τ προβλημα ειναι η ημερομηνια...μαλλον την παιρνω με λαθος μορφη(αν και την εκανα cout και μ την εβγαλε κανονικα)...μηπως μπορειτε να προτεινετε καποιον τροπο εμφανισης της ημερομηνιας ωστε να το δεχεται σαν filename...?εγω ψαχνω της μορφης  ΜΕΡΑ/ΜΗΝΑΣ/ΧΡΟΝΙΑ


Title: Re: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: djifos on September 27, 2011, 10:18:03 am
Παιδια ολα οσα μου ειπατε τελικα ειναι σωστα,γιατι δοκιμασα να βαλω γενικα μια μεταβλητη με string να εμφανιζεται στο filename και μου τ εμφανισε κανονικα...αρα τ προβλημα ειναι η ημερομηνια...μαλλον την παιρνω με λαθος μορφη(αν και την εκανα cout και μ την εβγαλε κανονικα)...μηπως μπορειτε να προτεινετε καποιον τροπο εμφανισης της ημερομηνιας ωστε να το δεχεται σαν filename...?εγω ψαχνω της μορφης  ΜΕΡΑ/ΜΗΝΑΣ/ΧΡΟΝΙΑ

το '/' δεν το δέχεται σαν χαρακτήρα σε filename, τουλάχιστον όχι σε όλα τα λειτουργικά. Καλύτερα να χρησιμοποιήσεις '_' (underscore) ή '.' (dot) για διαχωριστικό..


Title: Re: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: Καμένος on September 27, 2011, 10:22:09 am
Για δές αυτό (δεν το έχω δοκιμάσει):

C++ Date Time - Using SYSTEMTIME and FILETIME:

   There are five different formats for date time in windows. They are System Time, File Time, Local time, MS-DOS and Windows(milliseconds since the system rebooted). Among this five, System Time and File Time are used prominently.

   SYSTEMTIME is a structure which stores the date and time as Year, Month, Day, hour etc., Its format is as follows.

     typedef struct _SYSTEMTIME {
       WORD wYear;
       WORD wMonth;
       WORD wDayOfWeek;
       WORD wDay;
       WORD wHour;
       WORD wMinute;
       WORD wSecond;
       WORD wMilliseconds;
    } SYSTEMTIME;

   A sample for displaying date and time using SYSTEMTIME is as follows. This program displays the current Coordinated Universal date and Time, using GetSystemTime function.

     #include <Windows.h>
     #include <stdio.h>

     void main()
     {
         SYSTEMTIME st;
         GetSystemTime(&st);
         printf("Year:%d\nMonth:%d\nDate:%d\nHour:%d\nMin:%d\nSecond:% d\n" ,st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
     }

   It is very convenient to use the SYSTEMTIME structure because it contains all the values in a human readable format.

   FILETIME structure stores time as number of 100 nanoseconds elapsed since January 1, 1601. So whenever this structure is used, for display purposes this has to be converted to SYSTEMTIME format. The C++ function FileTimeToSystemTime is used to achieve this purpose.


Title: Re: Όνομα αρχείου στη C++ με την ημερομηνία
Post by: gt on September 27, 2011, 11:21:05 am
Παιδια υστερα απο ενα συνοθυλευμα ολων των παραπανω το προβλημα λυθηκε...και η βασικη αιτια ηταν αυτο /...Ευχαριστω πολυ για την υπερπολυτιμη βοηθεια σας...Καμενε με την τελευταια σου προταση τα καταφερα τελικα..thnx