Optellen in een bestand wanneer je iets gedownload hebt.

Status
Niet open voor verdere reacties.

jimowns

Gebruiker
Lid geworden
2 sep 2006
Berichten
341
Hey,
Ik ben een klein Game launcher aan het maken, wanneer je het spel wilt spelen dat hij eerst volledig het bestand download en daarna update.

Maar heb een Version.dll gemaakt met daar een integer 0 in.
wanneer er in de Version.dll een integer 0 is opgeslagen, gaat hij naar num == 0 en download hij het bestand.
wanneer het bestand gedownload is moet er in de Version.dll +1 gebeuren. zodat hij dan naar regel num == 1. En wanneer het bestand van regel num == 1 is gedownload is.
Doet hij terug +1. Maar als je de Version.dll opend dat er 2 instaat. hij gaat dan naar regel num == 2 gaat en dat hij het bestand daarin download.

Het probleem is dat de Version.dll op 0 blijft staan en dat hij niet optelt.

ik hoop dat jullie mij kunnen helpen.


Code:
        WebClient Client = new WebClient();  // Nieuwe declaratie maken van WebClient
        private void Form1_Load(object sender, EventArgs e)
        {
            //  download 1 :  http://112.201.130.188:80/patch/3DDATA.rar         129MB ---->  Nog inprogrammeren
            //  download 2 :  http://112.201.130.188/patch/ARMORS.rar            26 MB
            //  download 3 :  http://112.201.130.188/patch/DONATEARMORS.rar      149 KB
            //  download 4 :  http://112.201.130.188/patch/GEM.rar               5.4 kb
            //  download 5 :  http://112.201.130.188/patch/GEM%5bFIX%5d.rar      15 kb

            Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Client_DownloadProcesChanged);
            Client.DownloadFileCompleted += new AsyncCompletedEventHandler(Client_DownloadHandler);
            string Versie = File.ReadAllText("Version.dll");
            Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/DONATEARMORS.rar"), @"DONATEARMORS.rar");

        }

        void Client_DownloadHandler(object sender, AsyncCompletedEventArgs e)
        {
            string Versie = File.ReadAllText("Version.dll");
            int num = int.Parse(Versie) + 1;

            if (!File.Exists(@"DONATEARMORS.rar") || num == 0 )
            {
                Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/DONATEARMORS.rar"), @"DONATEARMORS.rar");
            }

            if (File.Exists(@"DONATEARMORS.rar") && !File.Exists("GEM.rar") || num  == 1)
            {
                Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/GEM.rar"), @"GEM.rar");
                bool succes;
                succes = rar.Open("DONATEARMORS.rar");
                succes = rar.Unrar("/");
                if (succes != true)
                {
                    MessageBox.Show("Update DONATEARMORS.rar Failed");
                }
                else
                {
                    num = int.Parse(Versie) + 1;
                    label4.Text = "Version: " + Versie;
                    MessageBox.Show("Success.");
                }
            }
            if (File.Exists(@"DONATEARMORS.rar") && File.Exists("GEM.rar") && !File.Exists("GEM%5bFIX%5d.rar")|| num  == 2)
            {
                Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/GEM%5bFIX%5d.rar"), @"GEM%5bFIX%5d.rar");
                bool succes;
                succes = rar.Open("GEM.rar");
                succes = rar.Unrar("/");
                if (succes != true)
                {
                    MessageBox.Show("Update GEM.rar Failed");
                }
                else
                {
                    num = int.Parse(Versie) + 1;
                    label4.Text = "Version: " + Versie;
                    MessageBox.Show("Success.");
                }
            }
}


Mvg, Jim
 
Laatst bewerkt:
Dan is mijn eerste vraag, waar update jij version.dll?
Ik zie alleen maar een File.ReadAllText("Version.dll"); staan
 
dat doe ik met: int num = int.Parse(Versie) + 1;
ik gebruik de label voor het te bekijken wat er in Version.dll zit.
ik gebruik nu dit. maar de variabele num wordt nergens gebruikt.
Code:
label4.Text = "Version: " + Versie;

ik heb dit ook eens verrandert naar dit.
Code:
label4.Text = "Version: " + num.ToString();

en het blijft hetzelfde.
Het zal wel een klein foutje zijn waar ik altijd overkijk zeker :p

Mvg, Jim
 
Laatst bewerkt:
Jij zegt het volgende:
Maar heb een Version.dll gemaakt met daar een integer 0 in.
...
Het probleem is dat de Version.dll op 0 blijft staan en dat hij niet optelt.
Hieruit begrijp ik dat jij een bestand hebt genaamd version.dll met alleen een cijfer erin en dat je het bestand version.dll wil updaten dat er 1 of iets ander in komt te staan in plaats van 0.

Dan blijft de vraag. Waar update jij het bestand version.dll?
Je update wel een variabele in je code, maar het bestand version.dll update je niet.
 
Dankuwel killermenace :D
ik heb het anders gedaan.
Code:
                    string Versie = File.ReadAllText("Version.dll");
                    int num = int.Parse(Versie);
                    string bestand = @"Version.dll";
                    StreamWriter SW = File.CreateText(bestand);
                    SW.Write("2");
                    SW.Close();
                    label4.Text = "Version: " + Versie;
 
Sorry voor de dubblepost.
Voor nummers op te laten tellen u bestand.
Code:
            string Versie = File.ReadAllText(@"Version.dll");  //  Read lines of Version.dll
            int num = int.Parse(Versie) +1;    // Convert the string number to integer number
            while (num < 300)     // if Version.dll less then 30
            {
                Console.WriteLine("Nummer = {0}", num);
                StreamWriter SW = File.CreateText("Version.dll");
                SW.Write(num.ToString());   // write number in the file
                SW.Close();   //   save it into the file
                num++;    //  number +1
            }

Mvg, Jim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan