.txt datei mit c++ als versions Check abrufen.



  • Hallo Community,

    ich habe vor ein kleines programm zu basteln was bis nun eigendlich fertig ist, jedoch versuche ich eine webseite abrufen zulassen und die dazugehöre .txt datei, z.b meineseite.de/check.txt. Ich möchte bezwecken das das Programm beim Start abfragt ob es eine neue Version gibt, ob das Programm nicht vom Admin gesperrt wurde und so weiter. Ich habe mir das in diesem sinne vorgestellt: version=2.5 und im programm selber gibt es dann eine definierung die anzeigt version=2.5, wenn jedoch in der .txt nun jedoch 2.6 steht, beendet sich das programm und schreibt eine log datei (log datei schon fertig). Und das programm läuft dann erst wieder wenn man die neue Version geladen hat. Das gleiche für das bestimmen der Funktionen, also z.B kannbauen=true und sobalt es auf false steht kann man im programm die funktion kannbauen auch nicht mehr anwenden.

    mfg, Searcle.



  • Wo genau liegt das Problem?



  • wenn du mehrere/viele dieser werte hast, könnte an es auch mit xml lösen



  • Erwartest du das man dir hier dieses Prog zusammenbaut?



  • Nein, habe ich nie gesagt, habe jedoch es über einen anderen weg gemacht. Ich habe nach einer Hilfestellung gesucht, nicht nach leuten die meinen mit ihren dummen antworten was erreichen zu können.



  • Searcle schrieb:

    Nein, habe ich nie gesagt, habe jedoch es über einen anderen weg gemacht. Ich habe nach einer Hilfestellung gesucht, nicht nach leuten die meinen mit ihren dummen antworten was erreichen zu können.

    Dann sage doch endlich, wo das Problem liegt, welche Libraries du verwendest, ...



  • http://code.google.com/p/awesomescript/source/browse/trunk/AwesOmeScript/Mainframe.cpp#868

    Hier, so hab ich das gemacht mit libcurl.

    //////////////////////////////////////////////////////////////////////////
    // Curl Callback
    static size_t my_curl_write( void *ptr, size_t size, size_t nmemb, void *stream)
    {
            if ( stream != NULL )
            {
                    Mainframe* frame = static_cast<Mainframe*>(stream);
                    wxString b((char*)ptr);
                    frame->TellVersion(b);
            }
            return size*nmemb;;
    }
    
    void Mainframe::OnCheckVersion( wxCommandEvent& )
    {       
            CURL* curl = curl_easy_init();
            curl_easy_setopt(curl, CURLOPT_URL, "http://awesomescript.googlecode.com/svn/trunk/ass_version.txt");
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_curl_write);
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, this);
            if ( curl_easy_perform(curl) != CURLE_OK ) 
            {
                    wxErrorBox(_("Could not connect to server. Please check Firewall or try later."), this);
            }
            curl_easy_cleanup(curl);        
    }
    
    void Mainframe::TellVersion( wxString v )
    {
            v.Trim();
    
            wxStringTokenizer tokens(v, ".");
            wxString s_major = tokens.GetNextToken();
            wxString s_minor = tokens.GetNextToken();
            wxString s_patch = tokens.GetNextToken();
    
            Version version;
    
            {
                    std::wstringstream ss(s_major.wc_str());
                    ss >> version.major;
            }
            {
                    std::wstringstream ss(s_minor.wc_str());
                    ss >> version.minor;
            }
            {
                    std::wstringstream ss(s_patch.wc_str());
                    ss >> version.patch;
            }
    
            if ( ASS_VERSION >= version )
            {
                    wxMessageBoxEx(wxString(_("You already have the newest version:")) + " " + v, this);
            }
            else
            {
                    if ( wxMessageBox(_("Newer version available:") + " " + v + "\n" + wxString(_("Do you want to go to the downloadpage?")), 
                                                  wxMessageBoxCaptionStr, wxYES_NO, this) == wxYES )
                    {
                            wxLaunchDefaultBrowser("http://code.google.com/p/awesomescript/downloads/list");
                    }
            }
    }
    

    HTH


Anmelden zum Antworten