HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

IP cím ellenőrző függvény készítése


Példaprogram letöltése

4471 bájt

Ebben a cikkben megvalósítunk egy függvényt, mely egy paraméterül kapott IP címről eldönti, hogy az valódi-e vagy sem. A függvény felhasználásával tetszőleges string típusú adatról eldönthető, hogy megfelel-e az IP címekre vonatkozó tartalmi és formai szabályoknak.

A példában egy egyszerű TEdit típusú vezérlőben lehet megadni a vizsgálandó IP címet reprezentáló karakterláncot, amelyet az IsValidIPAddress nevű függvény dolgoz fel. Az IsValidIPAddress függvény a következő jellemzőkkel rendelkezik:
IsValidIPAddress
Function IsValidIPAddress(Value:string):Boolean;
Paraméterek
Value:string
Az IP címet tartalmazó változó.
Visszatérési érték
A függvény helyes IP címet tartalmazó string esetén true értékkel tér vissza, egyébként false.
A függvény a karakterláncot szegmensekre bontja, ezeket egy karakterláncokat tároló listába teszi. A listát a művelet elején létre kell hozni:
IPlist := TStringList.Create;
A karakterlánc vizsgálatakor a legkézenfekvőbb módszer a karakterek egyenkénti feldolgozása. Minden karakterről megállapítható, hogy értéke megfelel-e a kritériumoknak az adott pozícióban. Az egyes vizsgálatok beállítanak egy logikai változót, mely a függvény visszatérési értéke lesz. A karakterlánc elemein végigmenő ciklus a következő vizsgálati feltételeket tartalmazza:
  • Az adott karakter része-e az IP címek esetén megengedett karakterek halmazának. A megengedett karakterek: ’.’ karakter, ’0’...’9’ szám karakterek.
. . .
if not (Value[i] in segchar) then
begin
  b:=false;
  break;
end;
  • A karakterlánc első és utolsó eleme nem lehet ’.’ karakter.
if (Value[i]='.') and ((i=1) or (i=Length(Value))) then begin
  b:=false;  break;
end;
  • Ha a formai szempontok érvényesülnek, a karakterlánc elemeit 4 karakterláncra bontjuk és felfűzzük a listára. A művelet végén a lista memóriaterületét felszabadítjuk.
if Value[i]='.' then
begin
  IPlist.Add(IPSegment);
  IPSegment:='';
end
else
begin
  IPSegment:=IPSegment+Value[i];
end;
. . .
IPlist.Add(IPSegment);
s := 0;
if (IPlist.Count <> 4) then b:=false;
  for j:=0 to IPlist.Count-1 do
    begin
      s := StrToInt(IPlist.Strings[j]);
      if (s>255) or ((IPlist.Strings[j][1] = '0') and (Length(IPlist.Strings[j]) > 1)) then
        begin
          b:=false;
          break;
        end;
    end;
IPlist.Free;
A függvény az alkalmazásban a Form-on található gomb megnyomásakor hajtódik végre.

Cikksorozat

#IDKategóriaCikk címeSorozat
3047WindowsAz XML bemutatása1. rész
3059WindowsAz XML bemutatása2. rész
3068WindowsAz XML bemutatása3. rész
3077WindowsAz XML bemutatása - deklarációk4. rész
3086WindowsAz XML bemutatása - MSXML, XSLT5. rész
3094WindowsAz XML bemutatása - DTD6. rész
3105WindowsXML adatok megjelenítése Excel-ben7. rész
3114WindowsDokumentum hivatkozások az XML-ben8. rész
3123WindowsXML adattípusok9. rész
3132WindowsXML adatok HTML oldalakon10. rész
3141WindowsXML Notepad11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 644. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |