Gjest Slettet+142 Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 (endret) hey.. ka bruker man i c++ for å vente (i 6 timer) før man gjør noe? tenkte å kjøre det i en loop sånn at en ting skjer hver 6. time ^^ har prøvd "sleep(21600000);", men det kom feilmeld på feilmelding: "85 C:\Programfiler\WhatPulse\bot.cpp could not convert `Sleep(1000)' to `bool' " ... bruker windows... Takk for svar Endret 15. oktober 2006 av Slettet+142 Lenke til kommentar
lnostdal Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 (endret) dette er noe jeg typisk ville satt opp v.h.a. cron under *nix .. under win32 vet jeg ikke om noe tilsvarende .. kanskje noen andre vet? det du kan gjøre er å kalle `Sleep' med en rimelig stor verdi i en loop der du ved hver iterering sjekker differansen mellom tiden før du startet loopen og tiden ved den nåværende iterasjonen; når den er >= 6 timer så er du i mål funksjoner til å sjekke tidspunkter og slikt: http://msdn.microsoft.com/library/default...._management.asp edit: feilmeldingen du beskriver ser forøvrig merkelig ut; jeg antar at det er slik at tallet blir for stort når du taster inn "6 timer"? - altså at det er dette som er problemet ditt Endret 15. oktober 2006 av lnostdal Lenke til kommentar
Gjest Slettet+142 Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 (endret) kan eg gjre noe som: Skjult tekst: (Marker innholdet i feltet for å se teksten): // // // #include <string> #include <iostream> #include <cstdlib> #include <fstream> #include <cmath> #include <ctime> #include <iomanip> #include <cctype> #include <sstream> #include <time.h> #include <windows.h> using namespace std; const string TC = "<TotalClicks>"; const string TK = "<TotalKeys>"; const string R = "<Rank>"; const string K = "<CurrentClientKeys>"; const string C = "<CurrentClientClicks>"; const string D = "<CurrentClientMouseValue>"; const string TCE = "</TotalClicks>"; const string TKE = "</TotalKeys>"; const string RE = "</Rank>"; const string KE = "</CurrentClientKeys>"; const string CE = "</CurrentClientClicks>"; const string DE = "</CurrentClientMouseValue>"; void Sleep(int ms); int main(){ // ############################## D A T O unsigned int const MAXSIZE = 50; char str[MAXSIZE]; time_t t = time(0); // strftime(str, MAXSIZE, "%d.%m.%y", gmtime(&t)); strftime(str, MAXSIZE, "%k", gmtime(&t)); // string dato = str; string dtime = str; // ############################## S L U T T D A T O string line; string fil; ifstream myfile ("WhatPulse.xml"); if (myfile.is_open()) { while (! myfile.eof() ) { getline (myfile,line); fil = fil + line + " "; } myfile.close(); } int tc = fil.find(TC, 0); int tk = fil.find(TK, 0); int r = fil.find(R, 0); int k = fil.find(K, 0); int c = fil.find(C, 0); int d = fil.find(D, 0); int tca = fil.find(TCE, tc+1); int tka = fil.find(TKE, tk+1); int ra = fil.find(RE, r+1); int ka = fil.find(KE, k+1); int ca = fil.find(CE, c+1); int da = fil.find(DE, d+1); string tcb = fil.substr(tc + TC.length(), tca-tc-TCE.length()+1); string tkb = fil.substr(tk + TK.length(), tka-tk-TKE.length()+1); string rb = fil.substr(r + R.length(), ra-r-RE.length()+1); string kb = fil.substr(k + K.length(), ka-k-KE.length()+1); string cb = fil.substr(c + C.length(), ca-c-CE.length()+1); string db = fil.substr(d + D.length(), da-d-DE.length()+1); string tcc = TC+"\t\t\t"+fil.substr(tc + TC.length(), tca-tc-TCE.length()+1); string tkc = TK+"\t\t\t"+fil.substr(tk + TK.length(), tka-tk-TKE.length()+1); string rc = R+"\t\t\t\t"+fil.substr(r + R.length(), ra-r-RE.length()+1); string kc = K+"\t\t"+fil.substr(k + K.length(), ka-k-KE.length()+1); string cc = C+"\t\t"+fil.substr(c + C.length(), ca-c-CE.length()+1); string dc = D+"\t"+fil.substr(d + D.length(), da-d-DE.length()+1); cout << tcc << endl << tkc << endl << rc << endl << kc << endl << cc << endl << dc << endl; /* time_t start_time, cur_time; time(&start_time); while(1==1){ // time(&start_time); do { time(&cur_time); } while((cur_time - start_time) < 10); // cout << "Hei! " << endl; } //while((cur_time - start_time) < 21600); */ /* while(Sleep(1000)){ // få tak i mysql feltene cpp.whatpulse (tc, tk, r, k, c) // sammenlign felt tc med var tcb, tk med var tb o.l. // hvis f.eks felt tc ikke lik var tc, oppdater rad i mysql. // vent i 6 timer før samme prosess kjøres igjen. <- gjøres egentlig i while(sleep()) cout << "hei!"; } */ cout << endl << endl; system("pause"); return 0; } ? i koden har eg kommentert to "koder" i to kommentar-felter.. den øverste av de to bruker full CPU, mens den nederste av de virker ikkje plz ikkje kommenter at eg har inkludert mange filer / måten å hente ut fra sql på Endret 15. oktober 2006 av Slettet+142 Lenke til kommentar
Giddion Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 Som Inostdal nevnte på så har du nok ikke brukt sleep på riktig måte Riktig måte: Skjult tekst: (Marker innholdet i feltet for å se teksten): #include <stdio.h> #include "Windows.h" int main() { printf("Nai nå tar vi en pause i 6 timer\n"); // Sleep(2000); // eller 2 sek for testing Sleep(21600000); printf("ahh det var fryktelig greit å ta en laaaaang pause på 6 timer\n"); } Sleep fungerer på den måten at koden ikke går til neste linje før tiden er gått. Hvis du skal bruken sleep i så lang tid vil nok windows si at programmet ikke svarer eller no. (litt usikker), men ikke noe galt vil skje og programmet vil fungere fint det. Hvis du vil lage en kode som skjekker om 6 timer er gått så er det også fult mulig, men det krever litt andre funksjoner. Og det kan også gjøres med veldig høy nøyaktighet. Bare si fra så skal jeg lage en kode så gjøre det også. lykke til Lenke til kommentar
Gjest Slettet+142 Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 (endret) takk har fikset litt no, og ta-da: // // // #include <string> #include <iostream> #include <cstdlib> #include <fstream> #include <cmath> #include <ctime> #include <iomanip> #include <cctype> #include <sstream> #include <time.h> #include "Windows.h" using namespace std; const string TC = "<TotalClicks>"; const string TK = "<TotalKeys>"; const string R = "<Rank>"; const string K = "<CurrentClientKeys>"; const string C = "<CurrentClientClicks>"; const string D = "<CurrentClientMouseValue>"; const string TCE = "</TotalClicks>"; const string TKE = "</TotalKeys>"; const string RE = "</Rank>"; const string KE = "</CurrentClientKeys>"; const string CE = "</CurrentClientClicks>"; const string DE = "</CurrentClientMouseValue>"; int main(){ // ############################## D A T O unsigned int const MAXSIZE = 50; char str[MAXSIZE]; time_t t = time(0); // strftime(str, MAXSIZE, "%d.%m.%y", gmtime(&t)); strftime(str, MAXSIZE, "%k", gmtime(&t)); // string dato = str; string dtime = str; // ############################## S L U T T D A T O string line; string fil; ifstream myfile ("WhatPulse.xml"); if (myfile.is_open()) { while (! myfile.eof() ) { getline (myfile,line); fil = fil + line + " "; } myfile.close(); } int tc = fil.find(TC, 0); int tk = fil.find(TK, 0); int r = fil.find(R, 0); int k = fil.find(K, 0); int c = fil.find(C, 0); int d = fil.find(D, 0); int tca = fil.find(TCE, tc+1); int tka = fil.find(TKE, tk+1); int ra = fil.find(RE, r+1); int ka = fil.find(KE, k+1); int ca = fil.find(CE, c+1); int da = fil.find(DE, d+1); string tcb = fil.substr(tc + TC.length(), tca-tc-TCE.length()+1); string tkb = fil.substr(tk + TK.length(), tka-tk-TKE.length()+1); string rb = fil.substr(r + R.length(), ra-r-RE.length()+1); string kb = fil.substr(k + K.length(), ka-k-KE.length()+1); string cb = fil.substr(c + C.length(), ca-c-CE.length()+1); string db = fil.substr(d + D.length(), da-d-DE.length()+1); string tcc = TC+"\t\t\t"+fil.substr(tc + TC.length(), tca-tc-TCE.length()+1); string tkc = TK+"\t\t\t"+fil.substr(tk + TK.length(), tka-tk-TKE.length()+1); string rc = R+"\t\t\t\t"+fil.substr(r + R.length(), ra-r-RE.length()+1); string kc = K+"\t\t"+fil.substr(k + K.length(), ka-k-KE.length()+1); string cc = C+"\t\t"+fil.substr(c + C.length(), ca-c-CE.length()+1); string dc = D+"\t"+fil.substr(d + D.length(), da-d-DE.length()+1); cout << tcc << endl << tkc << endl << rc << endl << kc << endl << cc << endl << dc << endl; /* time_t start_time, cur_time; time(&start_time); while(1==1){ // time(&start_time); do { time(&cur_time); } while((cur_time - start_time) < 10); // cout << "Hei! " << endl; } //while((cur_time - start_time) < 21600); */ int a; for(a=0; a<4; a++){ // få tak i mysql feltene `cpp`.`whatpulse` (tc, tk, r, k, c) // sammenlign felt tc med var tcb, tk med var tb o.l. // hvis f.eks felt tc ikke lik var tc, oppdater rad i mysql. //cout << "hei!"; // test // vent i 6 timer før samme prosess kjøres igjen. <- gjøres egentlig i while(sleep()) Sleep(21600000); //Sleep(2000); // test for 2 sek if(a==3) a = 1; // gjør loopen evig } cout << endl << endl; system("pause"); return 0; } mangler bare mysql-funksjonene - som eg ikkje får til. - skjønner de ikkje heller noen som kan ta seg tid til å fikse litt mysql på den? Endret 15. oktober 2006 av Slettet+142 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå