Avatar billede califfo Nybegynder
13. januar 2006 - 13:24 Der er 16 kommentarer og
1 løsning

Hvordan definerer man et interval?

Jeg er sikker på at der er nogen der kan svare på dette spørgsmål.

Hvordan definerer man et interval? Jeg skal skal lave en løkke der tjekker om en værdi er inden for et interval.

---
if (check.Equals() == interval) {}
---
Avatar billede spif2001 Nybegynder
13. januar 2006 - 13:40 #1
if (check.Equals() >= minimum && check.Equals() <= maximum) {}
Avatar billede arne_v Ekspert
13. januar 2006 - 13:45 #2
skal den .Equals() være der ??
Avatar billede spif2001 Nybegynder
13. januar 2006 - 13:46 #3
Jeg gik ud fra den returnerer en værdi...
Avatar billede arne_v Ekspert
13. januar 2006 - 13:49 #4
i så fald er det et uheldigt navn - selvom det uden argumenter ikke
generer den normale .Equals
Avatar billede spif2001 Nybegynder
13. januar 2006 - 13:50 #5
ja, men der var jo ikke så meget kode at arbejde med :)
Avatar billede califfo Nybegynder
13. januar 2006 - 13:52 #6
Ok. Jeg skal tjekke på om indstastede værdi er en gyldig IP-adresse. Jeg har lavet følgende:

---
public string IPcheck(string IPAddr)
{
    string[] check = null;
    char[] seperator = new char[1];
    seperator[0] = '.';

    check = IPAddr.Split(seperator);

    foreach (check in IPcheck)
    {
        if (check.Equals() >= minimum && check.Equals() <= maximum)
        {
        ValidIP = 1;
        }
        else
        {
        ValidIP = 0;
        }
         
        }
       
        return Ok;
}

---

Den der .Equals() behøver ikke være der hvis ikke det er nødvendigt...
Avatar billede califfo Nybegynder
13. januar 2006 - 13:54 #7
Når nu jeg lige ser på det, er det vist ikke så enkelt. En Ip kan jo ikke have en værdi der hedder noget lignede 0.1.0.1. Derimod er 192.168.0.1 en gyldig adresse.
Avatar billede spif2001 Nybegynder
13. januar 2006 - 13:55 #8
Er det kun de sidste to tal af IP'en du skal kontrollere? Eller er det alle fire?
Avatar billede califfo Nybegynder
13. januar 2006 - 13:55 #9
...Jeg prøvede at illustrere at 0 (og for den sags skyld også 255) ikke kan stå på alle pladser.
Avatar billede califfo Nybegynder
13. januar 2006 - 13:55 #10
Det er alle 4,...
Avatar billede califfo Nybegynder
13. januar 2006 - 13:56 #11
Alle 4 byte.
Avatar billede spif2001 Nybegynder
13. januar 2006 - 13:59 #12
using System.Net;

public bool IPcheck(string IPAddr)
{
    try
    {
    IPAddress ip = IPAddress.Parse(IPAddr);
    return true;
    }
    catch
    {
      return false;
    }
}
Avatar billede spif2001 Nybegynder
13. januar 2006 - 14:00 #13
IPAddress.Parse(IPAddr) smider en exception hvis den ikke kan lave en ip ud af den.
Avatar billede spif2001 Nybegynder
13. januar 2006 - 14:01 #14
mere præcist en FormatException
Avatar billede califfo Nybegynder
13. januar 2006 - 14:15 #15
Lølølølø! Det virker! Jeg tror spif2001 har fortjent pointene denne gang. Råb op hvis I er uenige, ellers kaster du (spif) bare et svar.
Avatar billede spif2001 Nybegynder
13. januar 2006 - 14:17 #16
svar :)
Avatar billede spif2001 Nybegynder
13. januar 2006 - 14:26 #17
IPAddress.Parse(string ipAddr) er implementeret således:

public static IPAddress Parse(string ipString)
{
      if (ipString == null)
      {
            throw new ArgumentNullException("ipString");
      }
      if (ipString.IndexOf(':') != -1)
      {
            bool flag1 = Socket.SupportsIPv6;
            SocketAddress address1 = new SocketAddress(AddressFamily.InterNetworkV6, 0x1c);
            int num1 = UnsafeNclNativeMethods.OSSOCK.WSAStringToAddress(ipString, AddressFamily.InterNetworkV6, IntPtr.Zero, address1.m_Buffer, out address1.m_Size);
            if (num1 != 0)
            {
                  throw new FormatException(SR.GetString("dns_bad_ip_address"), new SocketException());
            }
            byte[] buffer1 = new byte[0x10];
            long num2 = 0;
            for (int num3 = 0; num3 < 0x10; num3++)
            {
                  buffer1[num3] = address1[num3 + 8];
            }
            num2 = (((address1[0x1b] << 0x18) + (address1[0x1a] << 0x10)) + (address1[0x19] << 8)) + address1[0x18];
            return new IPAddress(buffer1, num2);
      }
      int num4 = UnsafeNclNativeMethods.OSSOCK.inet_addr(ipString);
      if (((num4 == -1) && (string.Compare(ipString, "255.255.255.255", false, CultureInfo.InvariantCulture) != 0)) && ((string.Compare(ipString, "0xff.0xff.0xff.0xff", true, CultureInfo.InvariantCulture) != 0) && (string.Compare(ipString, "0377.0377.0377.0377", false, CultureInfo.InvariantCulture) != 0)))
      {
            throw new FormatException(SR.GetString("dns_bad_ip_address"));
      }
      return new IPAddress(num4);
}


Måske dækker den dit behov, måske ikke, men den er ihvertfald bedre end bare at tjekke om værdierne er mellem 0 og 255.
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