Avatar billede hmortensen Nybegynder
27. oktober 2004 - 15:16 Der er 18 kommentarer og
1 løsning

Er der et argument

Hejsa

Hvordan kontrollere man om en applikation er kaldt med to argumenter ?

Jeg har prøvet det her, men det er vist helt i skoven.

if (args[0].ToString().Length == 0 || args[1].ToString().Length == 0)

Den fejler kun når der ingen paramter er, så hvordan tjekker man om variablen overhovedet eksistere ?
Avatar billede jpvj Nybegynder
27. oktober 2004 - 15:24 #1
args er et array - kan du ikke bare aflæse lænden af arrayet?

noget i stil med args.count / args.len / args.length
Avatar billede jpvj Nybegynder
27. oktober 2004 - 15:27 #2
Fandt denne stump kode til dig :-)

static void Main(string[] args) {
    if (args.Length == 0)
        goto done;
    Console.WriteLine(args.Length);

done:
    Console.WriteLine("Done");
}

Så args.Length giver dig altså antallet af argumenter som dit program er kaldt med.
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 15:29 #3
Mange tak
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:16 #4
Sådan i al respekt for at struktureret prgrammering blev opfundet for
en 35 år siden synes jeg at man skulle bruge if(...) {...} else {...} fremfor
goto !
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 17:20 #5
Har jeg også gjort. Har altid lært at man ikke må tvinge sig ud af løkker osv med goto.

Et lille tillægs spørgsmål:
Kan man bruge md5 i C# ?
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:22 #6
Ja.

Der er en klasse System.Security.Cryptography.MD5
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 17:22 #7
Du har vel ikke lige et lille eksempel på brugen ?
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:25 #8
Jeg kan lave et.
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:34 #9
using System;
using System.Text;
using System.Security.Cryptography;

class MainClass
{
    public static void Main(string[] args)
    {
        string input = "Dette er en lille test streng";
        Encoding utf8 = new UTF8Encoding();
        MD5 md5 = new MD5CryptoServiceProvider();
        string output = Convert.ToBase64String(md5.ComputeHash(utf8.GetBytes(input)));
        Console.WriteLine(input + " -> " + output);
    }
}
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 17:39 #10
Den returnere ikke det samme som php's md5()

Er det meningen ?
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:41 #11
Nej de burde returnere det samme.

Er der ÆØÅ i det du har testet på ?
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 17:46 #12
streng = exp
php's md5 = b0ab0254bd58eb87eaee3172ba49fefb
c#'s md5 = sKsCVL1Y64fq7jFyukn++w==
Avatar billede arne_v Ekspert
27. oktober 2004 - 17:49 #13
using System;
using System.Text;
using System.Security.Cryptography;

class MainClass
{
    public static void Main(string[] args)
    {
        string input = "Dette er en lille test streng";
        Encoding utf8 = new UTF8Encoding();
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] output = md5.ComputeHash(utf8.GetBytes(input));
        for(int i = 0; i < output.Length; i++)
        {
            Console.Write(String.Format("{0:X2}",output[i]));
        }
        Console.WriteLine();
    }
}
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 17:54 #14
Ja, så returnere den det rigtige:
B0AB0254BD58EB87EAEE3172BA49FEFB

Dog er alle bogstaver store. Har det betydning ?

Og den her gik ikke:
var = var + String.Format("{0:X2}",output[i]);
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 18:16 #15
Hjalp da jeg satte var = "";

Mange tak for hjælpen arne.
Vil du ha nogle point ?
Avatar billede arne_v Ekspert
27. oktober 2004 - 18:31 #16
Hvis du vil have små bogstaver så bruger du bare x2 fremfor X2 !
Avatar billede arne_v Ekspert
27. oktober 2004 - 18:32 #17
Point modtages altid med glæde, men jeg vidste godt at spørgsmålet var
lukket da jeg svarede
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 18:36 #18
Ahh, fjerner lige min ToLower()
http://www.eksperten.dk/spm/555168
Avatar billede jpvj Nybegynder
27. oktober 2004 - 20:58 #19
arne> Helt enig mht. goto - så det slet ikke, da jeg lige skulle "sigte" på arr.Length :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester