Datum in ura v starejši različici C

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 16 Okt 2017, 09:49

V službi imam manjši problem. V csv datoteko moram v vsaki vrstici dodati datum in uro (datum in uro začetka nekega postopka). Brskam po internetu in vidim veliko primerov v C, ki naredijo točno to, a vsi uporabljajo #include <time.h>.
Problem nastane, ker uporabljam zelo staro in prirejeno verzijo C-ja, kjer #include ni dovoljen. (In ne, mimo te verzije ne morem iti!!!)
Obstaja še kakšna rešitev, da bi spremenljivki tipa str priredil vrednost datuma in ure, brez uporabe #include .
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a VolkD » 16 Okt 2017, 10:11

Mogoče butasto, ampak to mi pade na pamet.

Poglej katere funkcije so tiste, ki jih v include koristi algoritem za vključitev datuma in ure. Potem pa iz include datoteke copy/paste v main samo te funkcije.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 40271
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 8357 krat
Prejel zahvalo: 4893 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a gumby » 16 Okt 2017, 10:24

Copy/paste celoten time.h v program (na mesto, kjer je #include). Prevajalnik naredi povsem enako.
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2537
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 107 krat
Prejel zahvalo: 593 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 64

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 16 Okt 2017, 10:26

VolkD je napisal/-a:Mogoče butasto, ampak to mi pade na pamet.

Poglej katere funkcije so tiste, ki jih v include koristi algoritem za vključitev datuma in ure. Potem pa iz include datoteke copy/paste v main samo te funkcije.


Ah največji problem je v tem, da o C-ju res nimam pojma! Oz. če povem malce drugače. Za zelo preproste stvari potrebujem celo večnost, ker ne znam niti osnov tega jezika. Tako si pomagam s primeri, od koder vlečem potrebne rutine. V C-ju nisem nikoli programiral, časa za kakšno resno učenje pa žal ni. Nadrejeni seveda pričakujejo, da če znaš cel kup drugih jezikov, da bo šlo brez težav tudi tule. A žal... morda sem že prestar, da bi se učil še en programski jezik :)

Tokrat potrebujem le preprost primer, kako v spremenljivko spraviti datum in uro. Ja vem... full težko :)
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a bray » 16 Okt 2017, 10:52

TheChemist je napisal/-a:Tokrat potrebujem le preprost primer, kako v spremenljivko spraviti datum in uro. Ja vem... full težko :)


Če prav razumem bi rad imel string? Kje oziroma v kakšni obliki pa imaš shranjen datum in uro? Predvidevam, da imaš kako tako strukturo...

Koda: Izberi vse
typedef struct {
   int ure;
   int minute;
   int sekunde;
   ....
} RTCTime;
COM port is not dead. It is virtual!
bray
 
Prispevkov: 452
Pridružen: 08 Avg 2016, 22:11
Kraj: Vransko
Zahvalil se je: 135 krat
Prejel zahvalo: 160 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 32

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 16 Okt 2017, 10:58

Do tule sem prišel:
struct tm *tm;
time_t t;
char szTransferTime[256];
char *ptrA;
char szFile[256];
char szText[256];

// Get Time Stamp
t = time(NULL);
tm = localtime(&t);

// create the formatted date/time
sprintf(szTransferTime, "%d%02d%02d-%02d%02d%02d", tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a bray » 16 Okt 2017, 11:04

Pol si pa tako že zmagal. ;) Ta string prilimaš (glej strcat) na začetek obstoječega in je.
COM port is not dead. It is virtual!
bray
 
Prispevkov: 452
Pridružen: 08 Avg 2016, 22:11
Kraj: Vransko
Zahvalil se je: 135 krat
Prejel zahvalo: 160 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 32

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a gumby » 16 Okt 2017, 11:53

TheChemist je napisal/-a:struct tm *tm;

Prevajalnik se ne joče glede tega?
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2537
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 107 krat
Prejel zahvalo: 593 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 64

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 16 Okt 2017, 12:00

Joka, joka. V bistvu se mi program, ki žene to kodo sesuje. Nekaj ne štima.
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a gumby » 16 Okt 2017, 12:11

Ne moreš imeti isto ime strukture in pointerja... Tole se spoloh ne bi smelo prevesti.
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2537
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 107 krat
Prejel zahvalo: 593 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 64

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 16 Okt 2017, 12:24

Naredi vse do zadnje vrstice. Čeprav mi v opozozorilu javi napako pointer type missmatch for assignment operator.

Tale ga pa čisto zmede in se sesuje:
sprintf(szTransferTime, "%d%02d%02d-%02d%02d%02d", tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4

Re: Datum in ura v starejši različici C

OdgovorNapisal/-a TheChemist » 17 Okt 2017, 10:30

Težava rešena in zadeva deluje! :)
Potrebno je bilo le dodati time(&t),

// Get Time Stamp
t = time(NULL);
time( &t );
tm = localtime(&t);
Vabljeni na http://www.asiminatree.com, kjer lahko izveste več o tej čudoviti rastlini.
TheChemist
 
Prispevkov: 191
Pridružen: 19 Jan 2015, 16:09
Zahvalil se je: 27 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 4


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost