sabato 17 maggio - 05:21
Google
 
Menù
  Home
  Come nasce IRC-Zone
  Glossario Informatico
  Servizio FreeBot
  News
  I nostri progetti
  I nostri servizi
  Partners
  Diventa un Partner

IRC
  Cos'è IRC
  Storia di IRC
  Netiquette su IRC
  Emoticons
  Gergo della chat
  Lista Servers
  RFC 1459
  Shell Hosting

mIRC
  Cos'è il mIRC
  FAQ mIRC
  Configurazione mIRC
  Download mIRC
  Novità
  Script Stranieri
  Script Italiani
  MTS
  MTS Engine

mIRC Addon
  mIRC addon Audio
  mIRC addon SMS
  mIRC addon Grafica
  mIRC addon Utility
  mIRC addon Uso Bot

Client IRC
  Client IRC Linux
  Client IRC Mac
  Client IRC Win

XChat
  Cos'è XChat
  XChat per Win
  XChat per Unix

KVirc
  Cos'è KVirc
  FAQ KVirc
  Installazione su Linux
  KVirc Scripting
  KVirc per Mac
  KVirc per Win
  KVirc per Unix
  KVirc addon

Eggdrop/Windrop
  Cos'è un Eggdrop
  Download Eggdrop
  Configurazione Eggdrop
  Download Windrop
  Installazione Windrop

Tcl
  Download TCL
  Tutorial TCL scripting
  Documenti/Guide

BNC
  Cos'è un psyBNC
  Download psyBNC
  Configurazione psyBNC
  Download sBNC
  Configurazione sBNC

Linkaci!

Credits


Statistiche
Ip: 38.103.63.16
Downloads: 248812 files
Totale: 290620 MB




Il ciclo if

Autore: Kaesar83Data: 2005-11-12
Modificato: Documento non modificato Letture: 723
Torna indietroStampa articoloInvia ad un amico

Uno dei più importanti aspetti del linguaggio di programmazione è rappresentato dalla condizione "if".
Essa restituirà i valori TRUE o FALSE ed eseguirà i comandi associati.
Mi spiego meglio, l'if usa un approccio logico come:

if 1 è uguale a 1 fai questo <> altrimenti quest'altro <>

La sintassi è questa:
if (v1 v2) { fai questo se vero } altrimenti { fai questo se falso (l'else è opzionale non sempre serve) }

Tra gli operatori che possiamo utilizzare ci sono:

== (uguale)
!= (diverso)
<= (minore o uguale)
>= (maggiore o uguale)
< (minore)
> (maggiore)

Esempio:
if ($nick == $botnick) {
putmsg $chan "Io sono $nick!"
} else {
putmsg $chan "Io non sono $nick!"
}

Ciò è di facile interpretazione e significa se il valore della variabile $nick è uguale a quello della variabile $botnick allora scrivi in canale "Io sono $nick!" altrimenti scrivi "Io non sono $nick!" chiaro no!?:p

N.B.: E' tutto CASE SENSITIVE quindi occhio a come scrivete comandi o variabili.

Adesso inizieremo a vedere le differenze che il TCL scripting ha rispetto agli altri linguaggi di programmazione.
Ad esempio se io volessi scrivere qualcosa per vedere se un $nick è un op di un $chan alcuni linguaggi (vedi mirc scripting) utilizzano l'operatore isop quindi scriverei if $nick isop $chan, in TCL scripting invece, le cose cambiano, esiste una procedura chiamata isop.

isop
ritorna "1" se il nickname è op nel canale
mentre restituirà "0" in caso contrario

Ora mi chiedo...come posso utilizzare questa procedura in un if?Ecco come...

Esempio:
if ([isop $nick $chan] == 1) {
putmsg $chan "$nick è operatore su $chan"
} else {
putmsg $chan "$nick non è operatore su $chan"
}

Lo stesso posso scriverlo in un'altra maniera cioè:

if ([isop $nick $chan] == 0) {
putmsg $chan "$nick non è op su $chan"
}

O così:

if ([isop $nick $chan] != 1) blablabla

o ancora:

if ([isop $nick $chan] != 0) blablabla


Come puoi vedere ci sono diverse possibilità.
Ti suggerisco di utilizzare l'else solo in maniera opzionale, tu usi l'if dove la condizione è vera o falsa ed esegui il codice non usando l'else.
Se ad esempio il bot non è op di un canale allora il msg in canale dovrà essere una domanda per avere l'op.
Puoi fare ciò in due modi, il modo più difficile e meno efficiente è questo:

if ([botisop $chan] == 1) {
} else {
putmsg $chan "Please opme!"
}

Come puoi vedere se il bot è op non succede nulla, puoi quindi cambiare il tutto in maniera più valida seguendo uno di questi 2 modi:

if ([botisop $chan] != 1) { putmsg $chan "Please opme!" }

o

if ([botisop $chan] == 0) { putmsg $chan "Please opme!" }

TCL interpreterà

if ([botisop $chan] == 1) {}

lo stesso che

if ([botisop $chan]) {}

Se la condizione è vera allora esegue il codice contenuto nelle graffe.
Puoi anche fare:

if ([botisop $chan] == 0) {}

if (![botisop $chan]) {}

! nega ciò che è presente nelle quadre

L'una o l'altra condizione servono per lo stesso scopo.


# Credits #

Author:
The |mmortaL [asn@cdc.net] - 'send key' in topic for PGP public key
People who helped (Major Thanxs):
Ec|ipse - tomas@primenet.com
janni - janni@itt.org
Cold Fusion - fusion@pbcs.com
Ernesto Baschny baschneo@trick.informatik.uni-stuttgart.de
And to the rest of the Eggdrop Doc Project team!


Tradotto e rielaborato da Kaesar83





Links utili

Newsletter
Iscriviti
Cancellati

Ci sono 57 iscritti

In rilievo..
  JackSMS v3
  Venom Script Lite

Documenti/Guide
  Sicurezza in rete
  Cos'è SSL
  FAQ Bot
  Documenti su IRC
  FAQ Ident
  RFC 2810
  RFC 2811
  IRCx RFC

Informatica libera
  Gli Hoaxes
  Hoaxes report
  Documenti vari
  CensorWare
  Windows
  Linux

mIRC Scripting
  Codice ASCII
  Snippet mIRC scripting
  Tutorial mIRC scripting
  Dll per mIRC
  Utilities

IRCd
  Cos'è un IRCd
  Download Unreal
  Download Hybrid 6
  Download Hybrid 7
  Download Ultimate
  Download Bahamut
  Configurazione IRCd

IRC Services
  Cosa sono i Services
  Download Anope
  Download Epona
  Ircservices 5.0
  Ircservices 5.1
  Configurazione Epona
  Configurazione Anope
  Comandi ChanServ
  Comandi NickServ
  Comandi MemoServ

NeoStats
  Cosa sono i NeoStats
  Download NeoStats
  Configurazione NeoStats
  Download Moduli

IPv6
  Cos'è IPv6
  IPv6 su Win2000
  IPv6 su WinXP
  IPv6 su Linux
  IPv6 su mIRC e Xchat

Programmazione
  Tutorial C++
  Tutorial C
  Compilatori C/C++

Altro
  Contatti
  Banners Gallery

RSS Feed




Progetti
Starlight
Linux

Sponsor
Eushells.net
TradeShell.it
EasyShell.org



©2004+ IRC-Zone | Webmaster | Sitemap
Created by Cesare 'Kaesar83' Lasorella
Designed by Manuel 'erkokki' Cabras
IRC-Zone non è responsabile del contenuto dei siti linkati
Pagina creata in: 0.020 sec con 26 queries