Main

Guida A Rebol

Main.GuidaARebol History

Hide minor edits - Show changes to markup

February 13, 2013, at 03:01 PM by Massimiliano Vessi -
Changed lines 48-49 from:

Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti da qui: https://github.com/rebol/r3 Mentre una guida per creare rebol per il vostro sistema operativo è qui: https://github.com/hostilefork/r3-hf/wiki

to:

Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti originali da qui: https://github.com/rebol/r3 Ma adesso esiste una versione un po' piu' curata qui: https://github.com/angerangel/r3bazaar

February 13, 2013, at 03:00 PM by Massimiliano Vessi -
Changed lines 19-36 from:

http://www.rebol.com/download-view.html%height=40px%

Se volete piu' informazioni esiste il portale in lingua inglese: [[http://rebol.informe.com]

E il gruppo Facebook: http://www.facebook.com/groups/rebol/ %height=40px%

E la community G+:

Il pagina Rebol World contenete tutti i siti dedicati a Rebol: http://www.maxvessi.net/rebsite/wr/ http://www.maxvessi.net/rebsite/wr/Earth.gif

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%% (:html:) <script type="text/javascript" src="http://output13.rssinclude.com/output?type=js&id=553053&hash=5b79a275a71a0d5a1b459fe1aa1a22e2"></script> (:htmlend:)

Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r %height=40px%

to:
  • http://www.rebol.com/download-view.html

Se volete piu' informazioni esiste:

  • il portale degli utenti: http://rebol.informe.com
  • il gruppo Facebook: http://www.facebook.com/groups/rebol/
  • la community G+:
  • Il pagina Rebol World contenete tutti i siti dedicati a Rebol: http://www.maxvessi.net/rebsite/wr/
  • Un blog costantemente aggiornato: http://rebol2.blogspot.com
  • Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r
Added line 33:
February 13, 2013, at 02:47 PM by Massimiliano Vessi -
Changed lines 21-22 from:

Se volete piu' informazioni esiste il forum in lingua inglese: http://synapse-ehr.com/community/forums/rebol.5/ %height=40px%

to:

Se volete piu' informazioni esiste il portale in lingua inglese: [[http://rebol.informe.com]

Added lines 24-25:

E la community G+:

January 08, 2013, at 10:47 AM by 83.103.10.149 -
Changed lines 42-43 from:

REBOL E' GRATIS

to:

REBOL 2

REBOL 2 E' GRATIS

Added lines 51-57:

REBOL 3

Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti da qui: https://github.com/rebol/r3 Mentre una guida per creare rebol per il vostro sistema operativo è qui: https://github.com/hostilefork/r3-hf/wiki

La guida seguente è al momento per Rebol 2, quando Rebol 3 sara' sufficientemente maturo, parlera' di Rebol 3.

Changed line 63 from:

<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB&hl=it_IT" frameborder="0" allowfullscreen></iframe>

to:

<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB" frameborder="0" allowfullscreen></iframe>

October 11, 2012, at 06:06 PM by Massimiliano Vessi -
Changed lines 3105-3106 from:

Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script r3d2.r che potete scaricare da qui: http://www.rebol.org/view-script.r?script=r3d2.r se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io): http://www.rebol.org/view-script.r?script=advanced-r3d.r

to:

Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script r3d2.r che potete scaricare da qui:

http://www.rebol.org/view-script.r?script=r3d2.r

se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io):

http://www.rebol.org/view-script.r?script=advanced-r3d.r

Added line 3114:
Added line 3118:
Added line 3122:
October 11, 2012, at 06:04 PM by Massimiliano Vessi -
Added lines 3102-3116:

3D

Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script r3d2.r che potete scaricare da qui: http://www.rebol.org/view-script.r?script=r3d2.r se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io): http://www.rebol.org/view-script.r?script=advanced-r3d.r ecco cosa fa: (:html:) <iframe width="420" height="315" src="http://www.youtube.com/embed/UL9Xb-fQX4U" frameborder="0" allowfullscreen></iframe> (:htmlend:) Tutta la documentazione per usarla è qui: http://www.rebol.org/documentation.r?script=r3d2.r

La libreria carica anche i file 3D in formato OFF, ecco un esempio: (:html:) <iframe width="420" height="315" src="http://www.youtube.com/embed/O0BRrqXXw-A" frameborder="0" allowfullscreen></iframe> (:htmlend:)

October 03, 2012, at 06:08 PM by Massimiliano Vessi -
Added lines 28-30:

(:html:) <script type="text/javascript" src="http://output13.rssinclude.com/output?type=js&id=553053&hash=5b79a275a71a0d5a1b459fe1aa1a22e2"></script> (:htmlend:)

October 03, 2012, at 05:19 PM by Massimiliano Vessi -
Deleted lines 14-16:

'''Adesso sono disponibili anche le lezioni video qui: http://www.youtube.com/playlist?list=PL145514E3A0BC9C6B oppure qui: RebolVideoGuida '''

Added line 34:
Changed lines 46-49 from:

Ecco una demo:

(:youtube -RVhBImcEAE:)

to:

Video dimostrativi:

Guardate questa demo: (:html:) <iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB&hl=it_IT" frameborder="0" allowfullscreen></iframe> (:htmlend:)

Video guida:

Edidte una guida in inglese attraverso dei video, eccola

(:html:) <iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PL145514E3A0BC9C6B&hl=it_IT" frameborder="0" allowfullscreen></iframe> (:htmlend:)

October 03, 2012, at 05:14 PM by 83.103.10.149 -
Changed line 10 from:
to:
October 03, 2012, at 05:05 PM by 83.103.10.149 -
Changed lines 26-27 from:

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077 %height=40px%

to:

E il gruppo Facebook: http://www.facebook.com/groups/rebol/ %height=40px%

Added line 31:
October 03, 2012, at 04:59 PM by 83.103.10.149 -
Deleted lines 6-11:

Indice Guida

(:toc:)

Changed line 12 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

to:

Rebol e' un linguaggio di programmazione meraviglioso e gratuito, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

Added lines 35-37:

Indice Guida

(:toc:)

July 20, 2012, at 06:32 PM by Massimiliano Vessi -
Changed line 1111 from:
 editor 
to:
 editor "prova"
July 20, 2012, at 06:30 PM by Massimiliano Vessi -
Added lines 1108-1118:

editor

Un comodo editor di testo:

 editor 

emailer

Una finestra per inviare email (il resto del codice verra' spiegato piu' avanti):

 view layout [btn "Manda una email" [emailer ]]
July 17, 2012, at 01:49 PM by 83.103.10.149 -
Added lines 1945-1958:

E' possibile raggrupparli con il comando of:

 view layout [
   text "Quale e' il pasto che preferisci?"
   radio-line "Colazione" of 'pasto
   radio-line "Pranzo" of 'pasto
   radio-line "Cena" of 'pasto
   text "Quando preferisci uscire?"
   radio-line "Di Giorno" of 'uscire
   radio-line "Di sera" of 'uscire
   ]
July 15, 2012, at 03:59 AM by 151.24.64.197 -
Added lines 1909-1923:

Scroller

Questo stile e' ottimo per far scorre dei sottopannelli e aree di testo:

 view layout [
        t1: area wrap system/license
        return
         scroller (as-pair 15 t1/size/y)  [ 
            t1/para/scroll/y: negate (face/data * second size-text t1)   
            show t1  
            ]
         ] 
July 15, 2012, at 03:15 AM by 151.24.64.197 -
Changed lines 1967-1971 from:

Menu scelte: choice e drop-down

Choice

Ecco un menu a tendina molto comodo:

to:

Menu scelte: choice, drop-down e rotary

Sonno tutti elementi che permotto di scegliere da una lista di opzioni, la lista puo' essere fornita o con dei testi di seguito, oppure fornendo una serie dopo la parola data:

Added lines 1970-1976:
 choice data [1 2 3 ]
 button
 ]

Choice

Ecco un menu a tendina molto comodo:

 view layout [
Added lines 1995-2000:

Rotary

E' un pulsante che cambia valore ogni volta che ci clicchiamo sopra:

 view layout [
 rotary "1" "2" "3"
 ]
July 15, 2012, at 03:08 AM by 151.24.64.197 -
Added lines 1909-1930:

Progress

Questo stile e' una barra di riempimento progresivo, il suo valore varia da zero a uno (decimale):

 view layout [
 a: progress
 slider [a/data: face/data show a]
 ]

Radio button

Lo stile radio e' utile quando l'utente deve scegliere solo una delle possibili opzioni, gli stili radio sono:

  • RADIO
  • RADIO-LINE

Esempio:

 view layout [
 radio-line "Opzione 1"
 radio-line "Opzione 2"
 radio-line "Opzione 3"
 ]
July 15, 2012, at 02:55 AM by 151.24.64.197 -
Added lines 1909-1922:

Logo-bar

Si tratta di una barra verticale con il logo Rebol 24x300:

 view layout [ logo-bar]

Panel

Questo oggetto e' molto comodo per raggruppare oggetti e posizionarli come volete:

 view layout [
 Text "Esempio:"
 return
 panel yellow [ text "Prova" button button]
 ]
July 15, 2012, at 02:44 AM by 151.24.64.197 -
Changed lines 1902-1908 from:
to:

Icon

Lo stile icon crea un pulsante con una immagine e un testo, utile per fare videogiochi:

 view layout [
  icon "Clicca qui"
  ]
July 15, 2012, at 02:38 AM by 151.24.64.197 -
Added lines 1877-1889:

Io consiglio di utilizzare gli stili label per aggiungere del testo vicino ai campi di immissione: esempio:

 view layout [
  label "Nome:"
  label "Cognome:"
  label "Testo:"
  return
  field
  field 
  area
  ]
July 15, 2012, at 02:26 AM by 151.24.64.197 -
Changed lines 1854-1859 from:

Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito field singola riga o area per più righe:

to:

Esistono i seguenti tipi di check:

  • CHECK
  • CHECK-LINE
  • CHECK-MARK

Check-line e' il migliore per mettere dei testi in colonna:

Changed lines 1861-1862 from:
  campo: field
  areatesto: area
to:
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
Added lines 1866-1877:

Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito field singola riga o area per più righe:

 view layout [
  campo: field
  areatesto: area
 ]
Changed lines 1889-1902 from:

Check

Esistono i seguenti tipi di check:

  • CHECK
  • CHECK-LINE
  • CHECK-MARK

Check-line e' il migliore per mettere dei testi in colonna:

 view layout [
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
 ]
to:
July 15, 2012, at 02:23 AM by 151.24.64.197 -
Changed lines 1912-1913 from:

Menu scelte: choice

to:

Menu scelte: choice e drop-down

Choice

Added lines 1928-1935:

Drop-down

E' una lista, stile windows:

 view layout [
 prova: drop-down "uno" "due" "tre"
 button [print prova/text] 
 ]

la varibile text vi dice quale sia la scelta (prova/text).

July 15, 2012, at 02:07 AM by 151.24.64.197 -
Added lines 1876-1889:

Check

Esistono i seguenti tipi di check:

  • CHECK
  • CHECK-LINE
  • CHECK-MARK

Check-line e' il migliore per mettere dei testi in colonna:

 view layout [
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
 ]
July 15, 2012, at 01:59 AM by 151.24.64.197 -
Changed lines 1743-1744 from:
to:
  ]

Potete mettere piu' testi, uno rappresentera' il testo normale, l'altro apparira' quando viene premuto.

 view layout [
   button "Premi qui!"  "Bravo!"
  ]

Esistono i seguenti stili di bottoni:

  • BTN
  • BTN-CANCEL
  • BTN-ENTER
  • BTN-HELP
  • BUTTON

Gli stili btn si ridimensionano automaticamente al testo contenuto.

July 15, 2012, at 01:23 AM by 151.24.64.197 -
Added lines 1971-1974:

Con l'opzione offset potete decidere da dove partire a creare il sotopannello, provate ad inserire:

 es/offset: 0x0
July 15, 2012, at 01:21 AM by 151.24.64.197 -
Changed lines 1958-1970 from:
to:

Sottopannelli

Creare sottopannelli e' una caratteristica molto interessante, vediamo come si fa:

 view layout [
 button "esempio 1" [es/pane:  layout [txt "esempio 1" button ] show es]
 button "esempio 2" [es/pane:  layout [txt "esempio 2" button red] show es]
 return
 bar 3x200
 return
 es: box 200x200
 ]
July 15, 2012, at 01:06 AM by 151.24.64.197 -
Added lines 1947-1956:

Box

Il box è un rettangolo, potete colorarlo, metterci un testo dentro, ma la parte più interessante e' utilizzarlo per fare dei sotto-pannelli o menu'. Esempio semplice box:

 view layout [
  box red "Esempio"
  ]
July 15, 2012, at 12:49 AM by 151.24.64.197 -
Added lines 1668-1686:

Tutti gli stili sono:

  • BASE-TEXT
  • CODE
  • H1
  • H2
  • H3
  • H4
  • H5
  • TEXT
  • title
  • tt
  • txt
  • VH1
  • VH2
  • VH3
  • VH4
  • vtext
July 15, 2012, at 12:40 AM by 151.24.64.197 -
Added lines 1709-1716:

Barra

L'oggetto bar e' una barra orizzontale 200x3, potete cambiare la dimensione per renderla verticale

 view layout [
  bar 
  bar 3x200
  ]
July 15, 2012, at 12:29 AM by 151.24.64.197 -
Added lines 1779-1799:

Sfondo scalato:

 view layout [
  backdrop logo.gif
  button "esempio"
  button "esempio"
  ] 

Sfondo ripetuto:

 view layout [
  backtile logo.gif
  button "esempio"
  button "esempio"
  ]
July 15, 2012, at 12:22 AM by 151.24.64.197 -
Changed lines 1761-1762 from:

Casella di controllo (check)

La casella check può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:

to:

Oppure il punto di domanda:

Added lines 1764-1783:
  prova: choice "a" "b"
  button [ ? prova]
  ]

Prova a vedere le differenze.

Sfondo

Potete impostare un colore o un'immagine come sfondo. L'immagine può essere scalata o ripetuta per riempire la finestra. I comandi sono: backdrop e backtile. Per il colore si possono usare entrambi, poichè si potrebbe utilizzare come sfondo di un'immagine trasparente.

 view layout [
  backdrop red
  button "esempio"
  ] 

Casella di controllo (check)

La casella check può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:

 view layout [
Added lines 1789-1790:
July 15, 2012, at 12:10 AM by 151.24.64.197 -
Added lines 1778-1789:

Frecce

Potete aggiungere dei pulsanti con delle frecce, potete indicare direzione e dimensione.

 view layout [ 
  arrow 
  arrow left 
  arrow right 
  arrow down
  ]
May 11, 2012, at 02:30 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%

May 11, 2012, at 02:29 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%

May 11, 2012, at 02:28 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png %%

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%

May 11, 2012, at 02:27 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog costantemente aggiornato: http://rebol2.blogspot.com http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png %%

May 11, 2012, at 02:26 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog costantemente aggiornato: http://rebol2.blogspot.com http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png

May 11, 2012, at 02:25 PM by Massimiliano Vessi -
Changed line 36 from:

Un blog: http://rebol2.blogspot.com

to:

Un blog costantemente aggiornato: http://rebol2.blogspot.com http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png

May 11, 2012, at 02:21 PM by Massimiliano Vessi -
Added lines 335-339:
 >> aqua
 == 40.100.130

Colori

Ecco i nomi dei colori:

May 11, 2012, at 02:20 PM by Massimiliano Vessi -
Added lines 330-363:

Costanti

Rebol ha gia' dei valori preimpostati, tipo il pi greco o i nomi dei colori; voi comunque potete assegnarli altri valori se volete:

 >> pi
 == 3.14159265358979

(:html:) <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="3"><TR><TD><B>Name</B></TD><TD><B>Value</B></TD><TD><B>Color</B></TD><TD> </TD> <TD><B>Name</B></TD><TD><B>Value</B></TD><TD><B>Color</B></TD></TR> <TR><TD>aqua</TD><TD>40.100.130</TD><TD WIDTH="25" BGCOLOR="#286482"> </TD><TD WIDTH="30"></TD><TD>base-color</TD><TD>200.200.200</TD><TD WIDTH="25" BGCOLOR="#C8C8C8"> </TD></TR> <TR><TD>beige</TD><TD>255.228.196</TD><TD WIDTH="25" BGCOLOR="#FFE4C4"> </TD><TD WIDTH="30"></TD><TD>black</TD><TD>0.0.0</TD><TD WIDTH="25" BGCOLOR="#000000"> </TD></TR> <TR><TD>blue</TD><TD>0.0.255</TD><TD WIDTH="25" BGCOLOR="#0000FF"> </TD><TD WIDTH="30"></TD><TD>brick</TD><TD>178.34.34</TD><TD WIDTH="25" BGCOLOR="#B22222"> </TD></TR> <TR><TD>brown</TD><TD>139.69.19</TD><TD WIDTH="25" BGCOLOR="#8B4513"> </TD><TD WIDTH="30"></TD><TD>coal</TD><TD>64.64.64</TD><TD WIDTH="25" BGCOLOR="#404040"> </TD></TR> <TR><TD>coffee</TD><TD>76.26.0</TD><TD WIDTH="25" BGCOLOR="#4C1A00"> </TD><TD WIDTH="30"></TD><TD>crimson</TD><TD>220.20.60</TD><TD WIDTH="25" BGCOLOR="#DC143C"> </TD></TR> <TR><TD>cyan</TD><TD>0.255.255</TD><TD WIDTH="25" BGCOLOR="#00FFFF"> </TD><TD WIDTH="30"></TD><TD>forest</TD><TD>0.48.0</TD><TD WIDTH="25" BGCOLOR="#003000"> </TD></TR> <TR><TD>gold</TD><TD>255.205.40</TD><TD WIDTH="25" BGCOLOR="#FFCD28"> </TD><TD WIDTH="30"></TD><TD>gray</TD><TD>128.128.128</TD><TD WIDTH="25" BGCOLOR="#808080"> </TD></TR> <TR><TD>green</TD><TD>0.255.0</TD><TD WIDTH="25" BGCOLOR="#00FF00"> </TD><TD WIDTH="30"></TD><TD>ivory</TD><TD>255.255.240</TD><TD WIDTH="25" BGCOLOR="#FFFFF0"> </TD></TR> <TR><TD>khaki</TD><TD>179.179.126</TD><TD WIDTH="25" BGCOLOR="#B3B37E"> </TD><TD WIDTH="30"></TD><TD>leaf</TD><TD>0.128.0</TD><TD WIDTH="25" BGCOLOR="#008000"> </TD></TR> <TR><TD>linen</TD><TD>250.240.230</TD><TD WIDTH="25" BGCOLOR="#FAF0E6"> </TD><TD WIDTH="30"></TD><TD>magenta</TD><TD>255.0.255</TD><TD WIDTH="25" BGCOLOR="#FF00FF"> </TD></TR> <TR><TD>maroon</TD><TD>128.0.0</TD><TD WIDTH="25" BGCOLOR="#800000"> </TD><TD WIDTH="30"></TD><TD>mint</TD><TD>100.136.116</TD><TD WIDTH="25" BGCOLOR="#648874"> </TD></TR> <TR><TD>navy</TD><TD>0.0.128</TD><TD WIDTH="25" BGCOLOR="#000080"> </TD><TD WIDTH="30"></TD><TD>oldrab</TD><TD>72.72.16</TD><TD WIDTH="25" BGCOLOR="#484810"> </TD></TR> <TR><TD>olive</TD><TD>128.128.0</TD><TD WIDTH="25" BGCOLOR="#808000"> </TD><TD WIDTH="30"></TD><TD>orange</TD><TD>255.150.10</TD><TD WIDTH="25" BGCOLOR="#FF960A"> </TD></TR> <TR><TD>papaya</TD><TD>255.80.37</TD><TD WIDTH="25" BGCOLOR="#FF5025"> </TD><TD WIDTH="30"></TD><TD>pewter</TD><TD>170.170.170</TD><TD WIDTH="25" BGCOLOR="#AAAAAA"> </TD></TR> <TR><TD>pink</TD><TD>255.164.200</TD><TD WIDTH="25" BGCOLOR="#FFA4C8"> </TD><TD WIDTH="30"></TD><TD>purple</TD><TD>128.0.128</TD><TD WIDTH="25" BGCOLOR="#800080"> </TD></TR> <TR><TD>reblue</TD><TD>38.58.108</TD><TD WIDTH="25" BGCOLOR="#263A6C"> </TD><TD WIDTH="30"></TD><TD>rebolor</TD><TD>142.128.110</TD><TD WIDTH="25" BGCOLOR="#8E806E"> </TD></TR> <TR><TD>red</TD><TD>255.0.0</TD><TD WIDTH="25" BGCOLOR="#FF0000"> </TD><TD WIDTH="30"></TD><TD>sienna</TD><TD>160.82.45</TD><TD WIDTH="25" BGCOLOR="#A0522D"> </TD></TR> <TR><TD>silver</TD><TD>192.192.192</TD><TD WIDTH="25" BGCOLOR="#C0C0C0"> </TD><TD WIDTH="30"></TD><TD>sky</TD><TD>164.200.255</TD><TD WIDTH="25" BGCOLOR="#A4C8FF"> </TD></TR> <TR><TD>snow</TD><TD>240.240.240</TD><TD WIDTH="25" BGCOLOR="#F0F0F0"> </TD><TD WIDTH="30"></TD><TD>tan</TD><TD>222.184.135</TD><TD WIDTH="25" BGCOLOR="#DEB887"> </TD></TR> <TR><TD>teal</TD><TD>0.128.128</TD><TD WIDTH="25" BGCOLOR="#008080"> </TD><TD WIDTH="30"></TD><TD>violet</TD><TD>72.0.90</TD><TD WIDTH="25" BGCOLOR="#48005A"> </TD></TR> <TR><TD>water</TD><TD>80.108.142</TD><TD WIDTH="25" BGCOLOR="#506C8E"> </TD><TD WIDTH="30"></TD><TD>wheat</TD><TD>245.222.129</TD><TD WIDTH="25" BGCOLOR="#F5DE81"> </TD></TR> <TR><TD>white</TD><TD>255.255.255</TD><TD WIDTH="25" BGCOLOR="#FFFFFF"> </TD><TD WIDTH="30"></TD><TD>yellow</TD><TD>255.255.0</TD><TD WIDTH="25" BGCOLOR="#FFFF00"> </TD></TR> </TABLE> (:htmlend:)

May 08, 2012, at 03:10 PM by Massimiliano Vessi -
Changed line 1356 from:

ESERCIZI

to:

Alcuni esercizi

May 08, 2012, at 03:08 PM by Massimiliano Vessi -
Added lines 1381-1387:

Se vogliamo dividere un testo utilizzando uno piu' caratteri, per esempio la punteggiatura, basta fornire la stringa dei caratteri da utilizzare come divisori:

 esemp: "La rosa e' rosa. Se fosse stata viola, l'avrei chiamata violetta. Giusto?"
 parse esemp ",.?"
 == ["La" "rosa" "e'" "rosa" "Se" "fosse" "stata" "viola" "l'avrei" "chiamata" "violetta" "Giusto"]
Changed lines 1440-1441 from:
 >> a: "fiore.jpg" 
 >> parse a [thru "." ["jpg"|"gif"] end]
to:
 a: "fiore.jpg" 
 parse a [thru "." ["jpg"|"gif"] end]
Changed line 1443 from:
 >> parse a [to "." [".jpg"|".gif"] end]
to:
 parse a [to "." [".jpg"|".gif"] end]
Changed lines 1452-1453 from:

Per controllare l'estensione di un file con parse e' molto semplice, proviamo a controllare che il file sia un PDF:

to:

In Rebol esiste il comando suffix? per capire l'estensione di un file:

 suffix? %Esempio.pdf
 == %.pdf

Ma anche controllare l'estensione di un file con parse e' un esercizio molto semplice, proviamo a controllare che il file sia un PDF:

Added lines 1485-1499:

Estrarre del testo

Se vogliamo estrarre del testo usando delle regole, la formula piu' comune e' any con skip. Per esempio, ipotizziamo di voler estrarre il testo che si trova tra un numero di tre cifre e il punto:

 cifre: charset "0123456789" 
 esempio: { 
 Nome in codice 007 Massimiliano Vessi.
 Nome in codice 012 Sassenrath Carl.
 Nome in codice 121 Semseddin Moldibi.
 }
 parse esempio [any [3 cifre copy temp to "." (print temp) | skip]]

 Massimiliano Vessi
 Sassenrath Carl
 Semseddin Moldibi
 == true
May 08, 2012, at 02:53 PM by Massimiliano Vessi -
Changed lines 1535-1543 from:
to:

Per avere le dimensioni dello schermo, basta interrogare system/view/screen-face/size

 >> system/view/screen-face/size
 == 1280x1024

Quindi se volete fare un programma a schermo intero basta sfruttarlo:

 view center-face layout [ at 0x0 image system/view/screen-face/size logo.gif [unview] ]
May 08, 2012, at 02:12 PM by Massimiliano Vessi -
Added lines 1531-1534:

Se volete che una finestra si apra al centro dello schermo, basta usare il comando center-face:

 view center-face layout [ text "Ciao" ]
January 18, 2012, at 04:45 PM by Massimiliano Vessi -
Changed line 2830 from:

A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core e come primo output la seguente:

to:

A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core con l'opzione -cs e come primo output la seguente:

Changed line 2841 from:

e se vi collegherete col vostro browser vi apparira':

to:

e se vi collegherete col vostro browser alla pagina dello script, vi apparira':

Added lines 2844-2847:

L'opzione -cs significa:

  • c per script CGI
  • s per "nessun problema di sicurezza"
January 18, 2012, at 04:37 PM by Massimiliano Vessi -
Changed lines 30-31 from:

Se volete piu' informazioni esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol %height=40px%

to:

Se volete piu' informazioni esiste il forum in lingua inglese: http://synapse-ehr.com/community/forums/rebol.5/ %height=40px%

Added lines 36-37:

Un blog: http://rebol2.blogspot.com

Changed lines 43-45 from:

Tutto quello mostrato in questa guida si può fare con la versione gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque esistono anche delle versioni a pagamento per programmatori più esigenti:

to:

REBOL E' GRATIS

Tutto quello mostrato in questa guida si può fare con la versione gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque esistono anche delle versioni a pagamento per programmatori piu' esigenti:

January 18, 2012, at 04:34 PM by Massimiliano Vessi -
Changed line 18 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

Added lines 2821-2839:

Su un server meglio del PHP (script CGI)

Rebol può essere installato su un server come eseguibile per degli script CGI! In questo modo il server potra' creare dell pagine dinamice, come fa il PHP, ma con un liguaggio molto piu' semplice! Per prima cosa bisogna scaricare la versione CORE, sempre gratuita, dal sito: http://www.rebol.com/download-core.html e installarla sul proprio server. Le altre versioni non vanno bene per gli script.

A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core e come primo output la seguente:

 print "Content-type: text/html^/"

in modo che il nostro server non ci dia problemi.

Se tutto e' andato per il verso giusto possiamo provare con il seguente file, esempio.cgi:

  #! /home/max/public_html/rebol-core -cs
 Rebol [ title: "Esempio.cgi"]
 print "Content-type: text/html^/"
 print [<html><body> "REBOL CGI funziona!" <br>
 "Sono le ore: " now/time  </body></html>]

e se vi collegherete col vostro browser vi apparira':

 REBOL CGI funziona!
 Sono le ore: 16:32:17 
January 10, 2012, at 04:45 PM by Massimiliano Vessi -
Changed lines 2123-2124 from:
 view/new layout [
to:
 view layout [
Added line 2130:
 do [ focus the-box]
Changed lines 2132-2133 from:
 focus the-box
 do-events
to:
January 10, 2012, at 04:24 PM by Massimiliano Vessi -
Added lines 1940-1941:
Spazio#" "
TAB#"^-"
January 10, 2012, at 03:03 PM by Massimiliano Vessi -
Changed line 2135 from:
 if event/control/shift [...] ;controlla sia CONTROL che SHIFT
to:
 if event/contro and event/shift [...] ;controlla sia CONTROL che SHIFT
January 10, 2012, at 02:12 PM by Massimiliano Vessi -
Changed line 1941 from:

La combinazione con il tasto Control + un altro si ottoengono indicando il carattere maiuscolo con preceduto dal carattere ^

to:

La combinazione con il tasto Control + un altro si ottengono indicando il carattere maiuscolo con preceduto dal carattere ^

January 10, 2012, at 02:11 PM by Massimiliano Vessi -
Changed line 1928 from:
to:
Changed lines 1931-1932 from:
Canc#"^~"
Homehome
to:
Canc#"^~"
Homehome
January 10, 2012, at 02:10 PM by Massimiliano Vessi -
Added lines 1907-1944:

E' possibile anche mettere delle scorciatoie senza usare degli elementi, basta usare il comando key:

 view layout [
  text "Prova a premere e"
  key #"e" [alert "Hai premuto e"]
  ]

Si possono utilizzare più pulsanti per la stessa funzione, utilizzando la parola keycode:

 view layout [
  text "Prova a premere e o E"
  key keycode [#"e" #"E"] [alert "Hai premuto e o E"]
  ]

Sempre grazie al comando keycode e' possibile utilizzare i tasti speciali della tastiera (Inizio, Fine, PaggUp, PagDown, le freccie, ecc.). Ecco un esempio:

 view layout [
  text "Prova ad usare le freccie della tastiera"
  key keycode [up] [alert "Hai premuto su"]
  key keycode [down] [alert "Hai premuto giu' "]
  key keycode [left] [alert "Hai premuto sinistra"]
  key keycode [right] [alert "Hai premuto destra"]
  ] 

Ecco l'elenco dei tasti speciali:

TastoCodice
Insinsert
Canc#"^~"
Homehome
Fineend
PageUppage-up
PageDownpage-down
Freccia sinistraleft
Freccia destraright
Freccia suup
Freccia giu'down
CTRL+S#"^S"

La combinazione con il tasto Control + un altro si ottoengono indicando il carattere maiuscolo con preceduto dal carattere ^

November 24, 2011, at 02:23 PM by Massimiliano Vessi -
Changed line 76 from:

LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI

to:

LA VERSIONE DI REBOL DA SCARICARE E' LA 2.x.x , LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI

November 23, 2011, at 01:02 PM by Massimiliano Vessi -
Changed lines 1671-1672 from:

Casella di controllo (check)

La casella check può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:

to:

Analizzare qualunque elemento in VID

Usate l'editor integrato di Rebol per analizzare qualunque elemento vi interessi conoscere, esempio:

Added lines 1676-1682:
  prova: choice "a" "b"
  button [ editor prova]
  ]

Casella di controllo (check)

La casella check può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:

 view layout [
Added lines 1719-1732:

Menu scelte: choice

Ecco un menu a tendina molto comodo:

 view layout [
  text  "Cosa preferisci?"
  choice "Pasta" "dolci" [ alert reform ["Hai scelto" value] ]
  ]

L'elemento choice ha diverse variabile, value nella sua azione rappresenta il testo scelto. text rappresenta il testo che appare, ecco un altro esempio:

 view layout [
 prova: choice "a" "b"
 button "scelta" [ print prova/text]
 button "modifica" [ prova/text: "c"  show prova]
 ]
October 27, 2011, at 02:48 PM by Massimiliano Vessi -
Changed lines 580-581 from:

Cambia un valore alla posizione dell'indice della serie:

to:

Cambia un valore alla posizione dell'indice della serie e ritorna la serie dopo la modifica:

 >> a: [ "a" "b" "c" "d" "e" "f"]
 >> change a "c"
 == ["b" "c" "d" "e" "f"]
 >> a
 == ["c" "b" "c" "d" "e" "f"]
October 27, 2011, at 02:25 PM by Massimiliano Vessi -
Deleted lines 578-580:

ALTER

ARRAY

Added lines 580-584:

Cambia un valore alla posizione dell'indice della serie:

ARRAY

October 27, 2011, at 02:22 PM by Massimiliano Vessi -
Changed lines 518-519 from:
to:

ALTER

Cerca e rimuove un elemento nella serie, se non lo trova, lo aggiunge alla fine. Quando rimuove riotnra false, quando lo aggiunge ritorna true:

 >> a:  ["a" "b" "c" "d" "e" "f"]
 >> alter a "c"
 == false
 >> a
 == ["a" "b" "d" "e" "f"]
 >> alter a "c"
 == true
 >> a
 == ["a" "b" "d" "e" "f" "c"]
Changed lines 577-579 from:
to:

Modificare una serie

Deleted line 581:

AT

Deleted line 590:

SELECT

October 27, 2011, at 02:19 PM by Massimiliano Vessi -
Added lines 560-566:

SELECT

Cerca e vi restituisce l'elemento dopo quello indicato:

 >> a: [ "a" "b" "c" "d" "e" "f"]
 >> select a "c"
 == "d"
Deleted line 577:
October 27, 2011, at 02:16 PM by Massimiliano Vessi -
Added lines 488-498:

REPEND

Aggiunge valori o blocchi alla fine di una serie, ma li valuta prima:

 >> a: 1
 >> b: 2
 >> c: [ a b]
 >>d: copy []
 >> append d c 
 == [ a b] 
 >> repend d c
 == [a b 1 2]
Changed line 571 from:

REPEND

to:
October 27, 2011, at 02:13 PM by Massimiliano Vessi -
Changed lines 502-503 from:
to:

REMOVE-EACH

E' una rimozione condizionale, rimuove gli elementi che verificano il blocco alal fine del comando:

 >> a: [1 9 2 8 3 7 4 6 5]
 >> remove-each elemento a [ elemento > 5]
 == [ 1 2 3 4 5]
Deleted lines 558-559:

REMOVE-EACH

October 27, 2011, at 02:11 PM by Massimiliano Vessi -
October 27, 2011, at 02:04 PM by Massimiliano Vessi -
Added lines 495-505:

REMOVE

Rimuove un elemento dalla testa della serie o fino posizione indicata:

 >> a:  ["a" "b" "c" "d"]
 >> remove a
 == ["b" "c" "d"]
 >>  remove/part a 2
 == ["d"]

Estrarre i dati

Per trovare quello che ci serve da una serie abbiamo molti comandi:

Changed lines 518-522 from:
to:
 >> a: [ "a" "b" "c" "d"] 
 == ["a" "b" "c" "d"]
 >> find a "c"
 == ["c" "d"]
Deleted line 552:

PICK

Changed line 554 from:

REMOVE

to:
October 27, 2011, at 01:54 PM by Massimiliano Vessi -
Deleted lines 469-470:
Deleted lines 494-504:

ALTER

ARRAY

AT

BACK

CHANGE

COPY

DIFFERENCE

EXCLUDE

Added lines 496-500:

Estrae a intervalli regolari, ha molte opzioni:

 >> a: [ 1 2 3 4 5 6 7 8 9 0]
 == [1 2 3 4 5 6 7 8 9 0]
 >> extract a 2
 == [1 3 5 7 9]
Changed lines 502-508 from:

FOUND?

HEAD

HEAD?

INDEX?

INTERSECT

JOIN

to:

Cerca all'interno della serie e restituisce una serie, dall'elemento trovato in poi:

 >> a
 == [1 2 3 4 5 6 7 8 9 0]
 >> find a 3
 == [3 4 5 6 7 8 9 0]
Changed lines 509-510 from:

LENGHT?

OFFSET?

to:

Vi dice l'ultimo elemento della serie:

 >> a
 == [1 2 3 4 5 6 7 8 9 0]
 >> last a
 == 0

PICK

Vi rende il valore alla posizione data:

 >> a: [ a b c d e f]
 == [a b c d e f]
 >> pick a 3
 == c

AT

Ritorna la serie dalla posizione specificata in poi:

 >> a: [ a b c d e f]
 == [a b c d e f]
 >> at a 3
 == [c d e f]

ALTER

ARRAY

AT

CHANGE

DIFFERENCE

EXCLUDE

INDEX?

INTERSECT

JOIN

October 27, 2011, at 01:43 PM by Massimiliano Vessi -
Changed lines 446-448 from:

I blocchi nascondo anche altre peculiarita', hanno tutti una testa (head) e una coda (tail), e un indice. La testa e' sempre il primo elemento della serie, mentre la coda e' sempre l'ultimo. L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie

to:

Indice di una serie

I blocchi nascondo anche altre peculiarita', per tecniche di programmazione avanzate; hanno tutti una testa (head) e una coda (tail), e un indice. La testa e' sempre il primo elemento della serie, mentre la coda e' sempre dopo l'ultimo elemento. L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie.

In un blocco appena creato l'indice punta sempre al primo elemento della serie. Se sposto l'indice in avanti con il comando next, la serie cambia:

 >> a: [ 1 2 3 4]
 >> a: next a
 == [ 2 3 4]

pero' non ho perso i dati, ho solo spostato l'indice in avanti, posso sempre riportarlo indietro di un passo con back, oppure all'inzio della serie con head:

 >> a: [ 1 2 3 4]
 >> a: next a
 == [ 2 3 4]
 >> a: next a
 == [ 3 4]
 >> a: back a
 == [ 2 3 4]
 >> a: head a
 == [ 1 2 3 4]
October 27, 2011, at 01:35 PM by Massimiliano Vessi -
Changed lines 403-404 from:

per creare una nuova serie vuota usate i comando copy:

to:

per creare una nuova serie vuota usate i comando copy, se non lo fate rischiate di associare la variabile ad un blocco vuoto già esistente:

Added lines 440-448:

Se volete sapere quanto e' lunga una serie, basta chiederlo con il comando length?

 >> a: [ 1 2 3 4 5 6 7 20]
 >> length? a
 == 8

I blocchi nascondo anche altre peculiarita', hanno tutti una testa (head) e una coda (tail), e un indice. La testa e' sempre il primo elemento della serie, mentre la coda e' sempre l'ultimo. L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie

October 27, 2011, at 01:28 PM by Massimiliano Vessi -
Changed lines 451-457 from:
 >> ["Buon" "anno!"]

ALTER

ARRAY

AT

BACK

CHANGE

to:
 == ["Buon" "anno!"]

INSERT

Con insert si inserisce in testa:

 >> a: [1 2 3 ]
 >> insert a 10
 == [10 1 2 3]

Rimuovere

Ecco alcuni comandi per rimuovere i dati da un blocco.

Added lines 462-473:

Rimuove tutti i dati dall'indice corrente fino alla fine della serie.

 >> a: [1 2 3 ]
 >> clear a
 == []

ALTER

ARRAY

AT

BACK

CHANGE

Changed line 483 from:

INSERT

to:
October 26, 2011, at 06:28 PM by Massimiliano Vessi -
Added lines 113-121:

Chiedere aiuto

Prima di tutto, qualunque cosa succeda, se usate il terminale di Rebol e non sapete un comando, usate il punto interrogativo:

 >> ? 

oppure

 >> ? insert

e vi apparira' un aiuto o una spiegazione.

October 26, 2011, at 06:23 PM by Massimiliano Vessi -
Added lines 444-478:

ALTER

ARRAY

AT

BACK

CHANGE

CLEAR

COPY

DIFFERENCE

EXCLUDE

EXTRACT

FIND

FOUND?

HEAD

HEAD?

INDEX?

INSERT

INTERSECT

JOIN

LAST

LENGHT?

OFFSET?

PICK

POKE

REMOVE

REMOVE-EACH

REPLACE

REPEND

REVERSE

SELECT

SKIP

SORT

TAIL

TAIL?

UNION

UNIQUE

October 26, 2011, at 06:16 PM by Massimiliano Vessi -
Added lines 1135-1174:

Creiamo una tabella

Se vogliamo creare una tabella, basta indicare il nome delle colonne:

 SQL> create table esempio [ prima seconda terza]
 true
 SQL>

 vediamo come e' fatta:
 SQL> desc esempio
 Column  Type
 ------- ----
 prima   none
 seconda none
 terza   none
 3 row(s) selected in 0:00 seconds

adesso le colonne hanno come tipo none, ma prenderanno il primo tipo inserito

Inserire i dati

Ecco come fare:

 SQL> INSERT INTO esempio VALUES [ 1 $5 "Max" ]
 prima seconda terza
 ----- ------- -----
     1   $5.00 Max
 1 row(s) selected in 0:00 seconds
  SQL>

adesso le colonne possono descriverci cosa contengono:

 SQL> desc esempio
 Column  Type
 ------- -------
 prima   integer
 seconda money
 terza   string

 3 row(s) selected in 0:00 seconds
October 26, 2011, at 06:07 PM by Massimiliano Vessi -
Added lines 1085-1134:

Una volta scompattata il file zip, troverete i seguenti file:

  • db.r
  • db-client.r
  • SQL.r

Non sto a descrivere i primi due, ma basta lanciare il terzo per trovarsi in una sessione di un database SQL!!!

 >> do %SQL.r
 SQL>

I comandi sono tantissimi, basta lanciare HELP per rendersene conto:

 SQL> help
 +-----------------------------------------------------------------------------+
 | Row Retrieval                                                               |
 +-----------------------------------------------------------------------------+
 | LOOKUP table {key [keys]}                                                   |
 | SELECT {* column [{rowid} columns]} FROM table                              |
 |     WHERE {key [keys] [conditions]}                                         |
 |     GROUP BY {column [columns]} (HAVING [conditions]}                       |
 |     ORDER BY {column [columns]} {DESC}                                      |
 +-----------------------------------------------------------------------------+
 | Row Management                                                              |
 +-----------------------------------------------------------------------------+
 | DELETE FROM table {key [keys]}                                              |
 |     WHERE {key [keys] [conditions]}                                         |
 | INSERT INTO table VALUES [{next} values]                                    |
 | TRUNCATE table                                                              |
 | UPDATE table SET {column [columns]} TO {value [values]} {key [keys]}        |
 |     WHERE {key [keys] [conditions]}                                         |
 +--------------------------------------+--------------------------------------+
 | Table Management                     | Informational                        |
 +--------------------------------------+--------------------------------------+
 | CLOSE {table *}                      | {DESC DESCRIBE} table                |
 | COMMIT {table *}                     | EXPLAIN statement                    |
 | CREATE table [columns]               | ROWS table                           |
 | DROP table                           | SHOW                                 |
 | ROLLBACK {table *}                   | TABLE? table                         |
 |                                      | TABLES                               |
 +--------------------------------------+--------------------------------------+
 | Commands                             | Settings                             |
 +--------------------------------------+--------------------------------------+
 | ; {comment}                          | SET ADDRESS url                      |
 | ECHO {text "text"}                   | SET HTML {on off}                    |
 | EXIT                                 | SET LINES {on off}                   |
 | HELP                                 | SET PATH path                        |
 | RUN {script script.sql}              | SET SPOOL {file off}                 |
 |                                      | SET USERNAME string                  |
 +--------------------------------------+--------------------------------------+
 SQL>
October 26, 2011, at 06:00 PM by Massimiliano Vessi -
Changed line 1084 from:

Prima di tutto potete scaricarlo da qui: attach:RebDB.zip oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html

to:

Prima di tutto potete scaricarlo da qui: RebDB.zip oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html

October 26, 2011, at 05:59 PM by Massimiliano Vessi -
Changed lines 1046-1047 from:

Inoltre in rete esistono varie librerie gratuite per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

to:

Inoltre in rete esistono varie librerie gratuite per dialogare con i piu' famosi database del mondo, guardate qui per esempio:

  • http://softinnov.org/rebol/mysql.shtml
  • http://softinnov.org/rebol/pgsql.shtml
  • http://softinnov.org/rebol/ldap.shtml

Se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

Added lines 1082-1084:

RebDB

Esiste anche un'altra possibilità, utilizzare lo script RebDB che ci permette di utilizzare la sintassi SQL per avere a propria disposizione un database professionale, senza dover installare alcun che'; funziona tutto attraverso e solo con Rebol. Prima di tutto potete scaricarlo da qui: attach:RebDB.zip oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html

October 26, 2011, at 04:40 PM by Massimiliano Vessi -
Added lines 39-44:

Versioni a pagamento

Tutto quello mostrato in questa guida si può fare con la versione gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque esistono anche delle versioni a pagamento per programmatori più esigenti:

  • la versione professionale a pagamento che aggiunge alcune funzioni che potete leggere in questo link: http://www.rebol.com/command.html
  • l'ambiente di sviluppo per programmatori professionali si può acquistare qui: http://www.rebol.com/sdk.html
October 26, 2011, at 04:33 PM by Massimiliano Vessi -
Changed lines 1038-1040 from:

In Rebol esistono varie librerie per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

to:

La versione a pagamento di Rebol ha accesso alla maggior parte dei databse professionali (MySQL, Oracle, SQLServer, Access, Excel), per maggiori informazioni: http://www.rebol.com/command.html

Inoltre in rete esistono varie librerie gratuite per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

October 24, 2011, at 04:05 PM by Massimiliano Vessi -
Changed lines 21-22 from:

Adesso sono disponibili anche le lezioni video: RebolVideoGuida

to:

'''Adesso sono disponibili anche le lezioni video qui: http://www.youtube.com/playlist?list=PL145514E3A0BC9C6B oppure qui: RebolVideoGuida '''

October 24, 2011, at 04:03 PM by Massimiliano Vessi -
Added lines 328-374:

se volete aspettare che il programma finisca, usate l'opzione /wait:

 >> call/wait "ls -l"

Eseguire script esterni

Per eseguire altri script basta usare il comando do:

 do %prova.r

se volete avere informazioni sullo script, caricatelo col comando load/header, per sempio se abbiamo un script così:

 Rebol [
 title: "Esempio"
 version:117
 ]
 print "hello world"

possiamo ricavare tutte le informazioni che vogliamo così (probe viene lanciato solo a scopo illustrativo):

 >> a: load/header %prova.r
 >> probe a 
 == [make object! [
        Title: "Esempio"
        Date: none
        Name: none
        Version: 117
        File: none
        Home: none
        Author: none
        Owner: none
        Rights: none
        Needs: none
        Tabs: none
        Usage: none
        Purpose: none
        Comment: none
        History: none
        Language: none
        Type: none
        Content: none
    ] print "hello world"
 ]
 >> a/1/version
 == 117
 >> a/1/Title
 == "Esempio"
October 24, 2011, at 03:55 PM by Massimiliano Vessi -
Added line 105:
  • Rebolide: http://www.rebol.org/view-script.r?script=rebolide.r
October 24, 2011, at 03:52 PM by Massimiliano Vessi -
Added lines 1880-1897:

VID Extension Kit

Un altro progetto che cerca di migliorare ulteriormente le interfacce con VID e' il VID Extension Kit che potete scaricare da qui: http://hmkdesign.dk/project.rsp?id=vid-ext-kit&page=info

oppure lo potete scaricare da qui: vid_extension_kit.zip

I comandi sono gli stessi di VID a parte che si usa make-window invece di layout, ecco un esempio:

 Rebol[]
 do %vid-ext-kit.r
 view make-window [
    across
    h3 "Main Window" return
    bar return
    label "Enter Name"
    field return
    ok-cancel
 ]
August 26, 2011, at 10:01 AM by Massimiliano Vessi -
Added lines 1471-1483:

Un elemento puo' essere nascosto fin dall'inizio imponendogli il settaggio di show? su falso:

 view layout [
    a: button "a" [ hide b show c ]
    b: button "b" [hide c show  a]
    c: button "c" [hide a show  b] with [show?: false]
     ]

Un elemento non può nascondere se stesso con hide, ma tale limitazione può essere superata con gli eventi (v. piu' avanti), ecco un esempio:

  view layout [
    button "Cliccami per nascondermi!" 120
    feel [engage: func [f a e][hide f ]]

]

July 28, 2011, at 04:37 PM by Massimiliano Vessi -
Added line 1545:
Added lines 1550-1551:

Si possono anche associare pulsanti ad azioni, senza doverle associare a particolari elementi della finestra; per fare cio' leggete piu' avanti nella sezione Eventi (avanzato)

July 28, 2011, at 03:52 PM by Massimiliano Vessi -
Added lines 1550-1553:

Scorciatoie da tastiera

E' possibile aggiungere delle scorciatoie da tastiera, per esempio premere la lettera a se invece di premere un pulsante. Per fare ciò basta aggiungere la lettera ad un oggetto. Provate a premere e con l'esempio sottostante:

 view layout [ button "esEmpio" #"e" [
    alert "hai premuto e"]]
July 28, 2011, at 03:47 PM by Massimiliano Vessi -
Added lines 1542-1549:

Pulsante destro del mouse

Ogni elemento può attivare un'azione diversa se si clicca col pulsante sinistro o destro del mouse. Se si vuole assegnare un'azione al pulsante destro del mouse, basta aggiungere un'altra azione all'oggetto, esempio:

 view layout [ button "Esempio" [
   alert "cliccato col pulsante sinistro" ][
   alert "cliccato col pulsante destro" ]
   ]
July 14, 2011, at 12:48 PM by Massimiliano Vessi -
Added lines 449-469:

Foreach

Il comando foreach risulta utilissimo quando si lavora con le serie, permette di attraversare la serie e sfruttarla; esempio:

 a: ["Gino" "Paola" "Mario"]
 foreach item a [ print ["a contiene" item]]
 ==
 a contiene Gino
 a contiene Paola
 a contiene Mario

Inoltre il comando foreach, permette di utilizzare gruppi di identificativi, vediamo quest'altro esempio:

 a: ["Gino" $4 "Paola" $5 "Mario" $10.5]
 foreach [nome soldi] a [
    print [nome " ha nel portafoglio " soldi ]
    ]
 ==
 Gino  ha nel portafoglio  $4.00
 Paola  ha nel portafoglio  $5.00
 Mario  ha nel portafoglio  $10.50
June 17, 2011, at 05:45 PM by Massimiliano Vessi -
Added lines 2356-2374:
  • scaricarlo da http://www.rebol.com/plugin/rebol-operab2.zip
  • scompattare i files e copiarli nella directory dei plugin del browser; ad esempio per Firefox e' C:/Program Files/Mozilla Firefox/plugins/
  • riavviare il browser

Potete provare il seguente link, se appare un quadrato colorato, funziona: http://www.rebol.com/plugin/web-plugin-install.html

Come scrivere una pagina web per il plugin?

E' moolto facile scrivere una pagina web per il plugin, basta incorporare pochissime righe tipo:

 <embed  type="application/x-rebol-plugin-v1" 
    WIDTH="200" HEIGHT="40" BORDER="1" 
    LaunchURL="http://www.rebol.net/plugin/demos/ready.r" >
 </embed>

Semplicissimo, basta impostare:

  • l'altezza e la larghezza corretta della finestra del plugin (WIDTH e HEIGHT)
  • il tipo di plugin (application/x-rebol-plugin-v1)
  • il link dello script rebol (LAUNCHURL)

Altri esempi li trovate qui: http://www.maxvessi.net/rebsite/plugin/index.html

June 14, 2011, at 02:46 PM by Massimiliano Vessi -
Changed lines 158-159 from:
  • ^(letter) inserisce un alettera di controllo (A-Z).
  • ^(xx) inserisce un carattere ACII, dove xx sta per il valore esadecimale
to:
  • ^(letter) inserisce una lettera di controllo (A-Z).
  • ^(xx) inserisce un carattere ASCII, dove xx sta per il valore esadecimale
June 14, 2011, at 02:44 PM by Massimiliano Vessi -
Changed lines 16-17 from:
to:
Deleted lines 28-32:

Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: DEB, RPM e TGZ (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:

http://www.maxvessi.net/rebsite/Linux/ %height=40px%

Added lines 79-82:

Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: DEB, RPM e TGZ (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:

http://www.maxvessi.net/rebsite/Linux/ %height=40px%

June 14, 2011, at 02:16 PM by Massimiliano Vessi -
Changed lines 44-46 from:

Ecco una demo:

to:

Ecco una demo:

Changed lines 49-50 from:

Utilizzatori nel mondo:

to:

Utilizzatori nel mondo:

Added line 57:
June 14, 2011, at 02:15 PM by Massimiliano Vessi -
Changed lines 56-59 from:

Vantaggi

to:

Vantaggi

June 14, 2011, at 02:14 PM by Massimiliano Vessi -
Added lines 7-15:

Indice Guida

(:toc:)

Introduzione

Deleted lines 67-70:

Indice Guida

(:toc:)

June 14, 2011, at 02:11 PM by Massimiliano Vessi -
Changed lines 25-33 from:

Se volete piu' informazioni esiste:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano Visita questo gruppo

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol %height=40px%

to:

Se volete piu' informazioni esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol %height=40px%

June 14, 2011, at 02:09 PM by Massimiliano Vessi -
Added lines 7-8:
Changed lines 50-53 from:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg

to:

(:html:) <a href="http://www4.clustrmaps.com/counter/maps.php?url=http://www.rebol.com" id="clustrMapsLink"><img src="http://www4.clustrmaps.com/counter/index2.php?url=http://www.rebol.com" style="border:0px;" alt="Locations of visitors to this page" title="Locations of visitors to this page" id="clustrMapsImg" onError="this.onError=null; this.src='http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://www2.clustrmaps.com'" /></a> (:htmlend:)

Changed line 67 from:
to:
June 01, 2011, at 01:08 PM by Massimiliano Vessi -
Added lines 2353-2355:

Rebol plugin

Esiste il plugin per i browser tipo Firefox, Opera e Internet Explorer. Per ora funziona solo su windows. Per installarlo basta:

May 30, 2011, at 05:07 PM by Massimiliano Vessi -
Changed lines 332-333 from:
to:
 >> prova: [a b c]
 == [a b c]
Changed lines 336-338 from:

per creare una nuova serie usate i comando copy]

to:

per creare una nuova serie vuota usate i comando copy:

Added lines 342-368:

per copiare una serie usate sempre copy:

 >> prova: [a b c]
 == [a b c]
 >> prova2: copy prova
 == [a b c]

Per prendere un elemento di un blocco basta indicare la posizione:

 >> prova/1
 == a
 >> prova/3
 == c

Se il blocco e composto da altri blocchi, potete comunque arrivare al dato richiesto:

 >> prova: [ Marco [$1 10.5] Mario [$3 20.1]]
 == [ Marco [$1 10.5] Mario [$3 20.1]]
 >> prova/2/1
 == $1
 >> prova/4/2
 == 20.1

Se il vi servite di molte variabili per arrivare ad una posizione, dovete utilizzare i due punti cosi':

 >> prova: [ Marco [$1 10.5] Mario [$3 20.1]]
 >> a: 2
 >> b: 1
 >> prova/:a/:b
 == $1
April 21, 2011, at 03:47 PM by Massimiliano Vessi -
Added lines 2268-2274:

VLINE

Disegna una linea verticale dalla posizione corrente:

DescrizioneTipo
lunghezzadecimale
Added lines 2276-2281:
 view layout [ box 300x300 effect [
  draw [ shape [ 
   move 100x100
   vline  50
   ]]]]
April 21, 2011, at 03:44 PM by Massimiliano Vessi -
Added lines 2254-2268:

QCURV

Disegna una curva di Bezier fino al punto indicato:

DescrizioneTipo
punto1coppia
 view layout [ box 300x300 effect [
  draw [ shape [ 
        move 0x150
	qcurve 100x250 200x150
	qcurv 400x150
	move 0x0
   ]]]]
April 21, 2011, at 03:42 PM by Massimiliano Vessi -
Added lines 2206-2254:

HLINE

Disegna un linea orizzontale dal punto corrente:

DescrizioneTipo
lunghezzadecimale
 view layout [ box 300x300 effect [
  draw [ shape [ 
   move 100x100
   hline  50
   ]]]]

LINE

Disegna una spezzata:

DescrizioneTipo
punto1coppia
punto2coppia
punto3coppia
...coppia
 view layout [ box 300x300 effect [
  draw [ shape [ 
   move 100x100
   line  50x50 20x220 120x42
   ]]]]

MOVE

Imposta il nuovo punto di partenza per una nuova forma, senza disegnare nulla. Può essere utilizzato per non chiudere le forme:

DescrizioneTipo
punto1coppia
 view layout [ box 300x300 effect [
  draw [ shape [ 
   move 20x20
   line  20x100 100x100 120x20
   ]
   pen red 
   shape [
   move 25x25
   line  25x105 105x105 125x25
   move 0x0  
   ]]]]
April 21, 2011, at 03:26 PM by Massimiliano Vessi -
Changed lines 2165-2167 from:

Curve

Disegna una curva morbida. Servono almeno 3 punti.

to:

CURV

Disegna una curva morbida. Servono almeno 2 punti.

Deleted line 2171:
punto3coppia
Added line 2174:
punto1coppia
Changed lines 2181-2184 from:
   curve 2x2 100x300 300x100   
to:
   move 100x50
   vline 150
   curv 300x150 300x50
   move 0x0   
Added lines 2187-2205:

CURVE

Disegna una cirva cubica di Beizer, servono almeno 3 punti:

DescrizioneTipo
punto1coppia
punto2coppia
punto3coppia
punto1coppia
punto2coppia
...coppia
 view layout [ box 300x300 effect [
  draw [ shape [ 
   move 100x50
   curve 100x150 300x150 300x50
   move 0x0 
   ]]]]
April 14, 2011, at 06:06 PM by Massimiliano Vessi -
Changed line 2133 from:

Disegna una curva ellittica dall'ultimo punto al punto indicato.

to:

Disegna una curva ellittica dall'ultimo punto al punto indicato. LARGE va impostato per archi maggiori di 180 gradi.

Added lines 2142-2182:

Esempio

 view layout [box 400x400 effect [ 
  draw [ 
    pen yellow line-width 4
   shape [
    move 100x200
    arc  75 200x200 false false
    ]
   pen red shape [
    move 100x205
    arc 75 200x205 true false
    ]
   pen green line-width 4 shape [
    move 150x200
    arc  75 200x200 false true
    ]
   pen blue shape [
    move 150x205
    arc 75 200x205 true true
   ]]]]

Curve

Disegna una curva morbida. Servono almeno 3 punti.

DescrizioneTipo
punto1coppia
punto2coppia
punto3coppia
punto1coppia
punto2coppia
...coppia

Esempio

 view layout [ box 300x300 effect [
  draw [ shape [ 
   curve 2x2 100x300 300x100   
   ]]]]
April 14, 2011, at 05:28 PM by Massimiliano Vessi -
Changed lines 2104-2105 from:

SHAPE e' un altro dialetto che permette di disegnare, ma utilizzando posizioni relative, non assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )

to:

SHAPE e' un altro dialetto che permette di disegnare forme del tutto arbitrarie, utilizzando posizioni relative o assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )

Added lines 2120-2142:

Adesso sara' elencata una lista dei comandi.

Posizioni relative e assolute

Quando un comando e' preceduto dall'apostrofo, vuol dire che le coordinate sono da intendersi relative. Quando un comando non e' preceduto dall'apostrofo e' da intendersi che le coordinate sono assolute. Esempio:

 view layout [box 120x30 effect [ 
  draw [ 
   shape [ move 10x10 'line 100x0 ]
   pen red 
   shape [ move 10x20  line 100x0 ]
   ]]

ARC

Disegna una curva ellittica dall'ultimo punto al punto indicato.

DescrizioneTipo
punto arrivocoppia
raggio xintero
raggio yintero
angolodecimale
sweeplogico
largologico
April 05, 2011, at 06:10 PM by Massimiliano Vessi -
Changed line 2103 from:

Grafica 2D (SHAPE)

to:

Grafica 2D (SHAPE)

April 05, 2011, at 06:07 PM by Massimiliano Vessi -
Added lines 2102-2119:

Grafica 2D (SHAPE)

SHAPE e' un altro dialetto che permette di disegnare, ma utilizzando posizioni relative, non assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )

Ogni volta che disegnamo una figura con SHAPE, se non specificato diversamente, Rebol la chiudera'. SHAPE si usa dentro DRAW, ecco un esempio ingombrante:

 view layout [ 
   box 300x400 effect [ draw [
     pen yellow line-width 4 fill-pen red 
     shape [
        move 100x175
        arc  75 200x175 false true
        line 100x175
        move 100x200
        arc 100 200x200 true true
        line 100x200
        ]]]]
April 03, 2011, at 12:06 AM by 151.95.0.200 -
Added lines 1665-1712:

Si possono intercettare anche i pulsanti premuti, ma deve avere il focus l'elemento che ha il comando di intercettare i pulsanti, esempio:

 view/new layout [
    the-box: box "A Box" forest feel [
        engage: func [face action event] [
            print [action event/key]
        ]
    ]
 ]
 focus the-box
 do-events

Come vedete sono intercettati tutti i pulsanti della tastiera, del mouse e perfino la rotellina del mouse. Se volete sapere se un pulsante viene premuto insieme al tasto CONTROL o SHIFT, basta controllare lo se e' TRUE lo stato dei seguenti:

 if event/control [...] ; controlla CONTROL
 if event/shift [...] ;controlla SHIFT
 if event/control/shift [...] ;controlla sia CONTROL che SHIFT

E adesso parliamo di un altro evento importantissimo, i timers. E' possibile chiedere ad un elemento di ripetere un'azione un certo numero di volte al secondo oppure ogni X secondi/minuti/ore. Esempio:

 view layout [
    box "A Box" forest rate 1 feel [
        engage: func [face action event] [
            print action
        ]
    ]
 ]

Apparira' una volta al secondo l'evento 'timer'. Ma se avessimo scritto

 rate 10 

sarebbe apparso 10 volte al secondo

 rate 0:00:10 

sarebbe apparso ogni 10 secondi

E ora mostriamo la semplicita' del tutto, ecco a voi un orologio digitale fatto con 5 righe di codice:

 view layout [
    origin 0
    banner "00:00:00" rate 1 feel [
        engage: func [face act evt] [
            face/text: now/time
            show face
        ]
    ]
 ]

Si puo' bloccare l'iterazione continua di un timer impostando:

 face/rate: none
April 02, 2011, at 11:49 PM by 151.95.0.200 -
Added lines 1618-1667:

Engage

Comando molto importante, permette di intercettare la pressione di un tasto del mouse, la posizione del mouse, timers e tante altre cose. Prima di spiegare oltre e' meglio fare un esempio di base, che anche se non molto utile apparentemente, chiarirà meglio gli esempi successivi:

 view layout [
    box "A Box" forest feel [
        engage: func [face action event] [
            print action
        ]
    ]
 ]

L'esempio appena descritto vi dice quando viene premuto o rilasciato il pulsante sinistro ('up' o 'down') o destro ('alt-up' o 'alt-down') del mouse. Oppure vi dirà se tenendo premuto il mouse e' sopra o no sull'elemento ('over' oppure 'away'). Anche se apparentemente non sembra molto, guardate come puo' essere sfruttato nel prossimo esempio per fare un elemento trascinabile:

 view layout [
    size 200x200
    box 40x40 coal "Trascinami!" font-size 11 feel [
        engage: func [face action event] [
            if action = 'down [start: event/offset]
            if find [over away] action [
                face/offset: face/offset + event/offset - start
                show face
            ]
        ]
    ]
 ]

La cosa bella di Rebol e' che facendo uno stile, non c'e' bisogno di ripetere gli comandi per tutti gli elementi, guardate qua:

 view layout [
 vtext "Trascinale tutte!"
    size 240x240
    style dragbox box 40x40 font-size 11 feel [
        engage: func [face action event] [
            if action = 'down [face/data: event/offset]
            if find [over away] action [
                face/offset: face/offset + event/offset - face/data
                show face
            ]
        ]
    ]
    dragbox "Box 1" navy
    dragbox "Box 2" teal
    dragbox "Box 3" maroon
    dragbox "Box 4" gold
 ]
March 29, 2011, at 03:54 PM by Massimiliano Vessi -
Changed lines 14-15 from:

Si scarica da qui:

to:

Tutte le versioni si scaricano da qui:

Changed line 18 from:

Oppure potete scaricare il pacchetto DEB per Ubuntu/Debian, il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

to:

Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: DEB, RPM e TGZ (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:

March 29, 2011, at 03:51 PM by Massimiliano Vessi -
Added lines 1609-1617:

E' anche possibile sapere costantemente dove si trova il mouse, e non solo quando entra/esce o viene cliccato, ma e' cattiva programmazione farlo:

 out: layout [
    box "A Box" forest feel [
        over: func [face act pos] [print [act pos]]
    ]
 ]
 view/options out [all-over]
March 29, 2011, at 03:48 PM by Massimiliano Vessi -
Added lines 1597-1608:

Vediamo un altro esempio molto simpatico (muovete il mouse sopra):

 view layout [
    box "A Box" forest feel [
        over: func [face act pos] [
            face/text: either act ["Over"]["Away"]
            face/color: either act [brick][forest]
            show face
        ]
    ]
 ]
March 29, 2011, at 03:45 PM by Massimiliano Vessi -
Added line 1578:
          print act
Added lines 1588-1595:

Over

Evento molto importante, permette di sapere se il mouse e' sull'elemento, dove si trova il mouse quando viene cliccato. Un esempio chiarisce ogni dubbio:

 view layout [
    box "A Box" forest feel [
        over: func [face act pos] [print [act pos]]
    ]
 ]
March 29, 2011, at 03:42 PM by Massimiliano Vessi -
Changed lines 1556-1557 from:

feel ha le seguenti funzioni utilizzabili:

to:

feel ha le seguenti eventi utilizzabili:

Changed lines 1563-1586 from:
to:

Ogni volta che avviene un evento ad un elemento con feel, esso si attiva. Si attiva se passa sopra il mouse, se viene cliccato l'elemento e cosi' via. Bisogna capire che non c'e' differenza fra un pulsante o un'immagine, per il PC sono la stessa cosa, mentre per noi sembrano differenti.

Ogni volta che dobbiamo usare feel, va come questo esempio:

 view layout [ a: box feel [
    redraw: func [face act pos][print pos]
     ]]

Qui di seguito spiegheremo meglio.

redraw

L'evento redraw puo' essere utilizzata o per variare l'aspetto di un elemento o per attivare una funzione quando viene ridisegnata. Ma vediamolo meglio con un esempio:

 view layout [ 
    a: box green feel [
       redraw: func [face act pos][
          print pos 
          ? pos
          ]
        ]  
    button "Nascondi" [hide a] 
    button "Mostra" [show a] 
    ]

Come si vede dall'esempio, la prima volta viene disegnato l'elemento e si attiva redraw, poi si attiva quando ci si clicca sopra. Se scompare non si attiva piu', e poi si riattiva quando appare.

March 29, 2011, at 03:16 PM by Massimiliano Vessi -
Changed lines 18-19 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian, il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

to:

Oppure potete scaricare il pacchetto DEB per Ubuntu/Debian, il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

Added line 92:

Scaricare il pacchetto gia' pronto da: http://www.maxvessi.net/rebsite/Linux/ oppure:

March 29, 2011, at 02:21 PM by Massimiliano Vessi -
Changed lines 1551-1562 from:

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.

to:

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando. Potete utilizzare gif animate da sole, senza altre immagini.

Eventi (avanzato)

Certe colte ci serve sapere dove si trova il cursore, oppure quale stato sia stato premuto, oppure ripetere ciclicamente un comando. Per tutte queste cose ci viene in aiuto il comando feel. feel ha le seguenti funzioni utilizzabili:

  • redraw [face action position]
  • over [face action position]
  • engage [face action event]
  • detect [face event]
March 25, 2011, at 05:43 PM by Massimiliano Vessi -
Deleted line 29:

Esiste il forum in italiano: http://rebol.forumup.it/ %height=40px%

March 25, 2011, at 05:42 PM by Massimiliano Vessi -
Added line 1230:
 text "Ciao"
Changed line 1232 from:
 text "Ciao"
to:
 text "Ciao ancora" font [ color: white shadow: 2x2]
March 25, 2011, at 05:36 PM by Massimiliano Vessi -
Changed lines 1239-1249 from:
VariabileTipoDescrizione
namestring!Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif.
sizeinteger!Grandezza del font
styleword! o block!Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme.
colortuple!Colore del testo, default e' 0.0.0
alignword!Allineamento del testo. Le scelte sono: left, right, and center.
valignword!Allineamento verticale del testo, le scelte sono: top, bottom e middle.
offsetpair!L'ooffest del testo dall'angolo in alto a sinistra. Default e' 2x2.
spacepair!Spazio tra caratteri e righe di testo, default e' 0x0.
shadowpair!Ombreggiatura, quando deve essere spostata, default e' 0x0
to:
VariabileTipoDescrizione
namestring!Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif.
sizeinteger!Grandezza del font
styleword! o block!Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme.
colortuple!Colore del testo, default e' 0.0.0
alignword!Allineamento del testo. Le scelte sono: left, right, and center.
valignword!Allineamento verticale del testo, le scelte sono: top, bottom e middle.
offsetpair!L'offest del testo dall'angolo in alto a sinistra. Default e' 2x2.
spacepair!Spazio tra caratteri e righe di testo, default e' 0x0.
shadowpair!Ombreggiatura, quando deve essere spostata, default e' 0x0
Changed lines 1252-1259 from:
VariabileTipoDescrizione
originpair!L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2.
marginpair!Il margine estremo in basso a destra del testo. Default e' 2x2.
indentpair!Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0.
scrollpair!Utilizzato per lo scrolling, default e' 0x0.
tabsinteger! o block!Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab. Default is 40.
wrap?logic!Indica se madare a capo automaticamente il testo.
to:
VariabileTipoDescrizione
originpair!L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2.
marginpair!Il margine estremo in basso a destra del testo. Default e' 2x2.
indentpair!Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0.
scrollpair!Utilizzato per lo scrolling, default e' 0x0.
tabsinteger! o block!Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab. Default is 40.
wrap?logic!Indica se madare a capo automaticamente il testo.
March 25, 2011, at 05:34 PM by Massimiliano Vessi -
Changed lines 1239-1241 from:
cell 1cell 2cell 3
cell 1cell 2cell 3
to:
VariabileTipoDescrizione
namestring!Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif.
sizeinteger!Grandezza del font
styleword! o block!Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme.
colortuple!Colore del testo, default e' 0.0.0
alignword!Allineamento del testo. Le scelte sono: left, right, and center.
valignword!Allineamento verticale del testo, le scelte sono: top, bottom e middle.
offsetpair!L'ooffest del testo dall'angolo in alto a sinistra. Default e' 2x2.
spacepair!Spazio tra caratteri e righe di testo, default e' 0x0.
shadowpair!Ombreggiatura, quando deve essere spostata, default e' 0x0
March 25, 2011, at 05:27 PM by Massimiliano Vessi -
Added lines 1224-1254:

Testi (avanzato)

Nel caso non vi bastassero gli stili, potete personalizzare i testi con ulteriori comandi. Il comando font e il comando para. Ognuno di questi comandi ha delle variabili da poter impostare per modificare l'effetto, prima un esempio e poi una spiegazione dettagliata:

 view layout [
 text "Ciao a tutti" font [ size: 25]
 text "Ciao"
 ]

Spiegamo meglio i due comandi:

Font

Font puo' impostare le seguenti variabili:

cell 1cell 2cell 3
cell 1cell 2cell 3

Para

Para puo' impostare le seguenti variabili:

VariabileTipoDescrizione
originpair!L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2.
marginpair!Il margine estremo in basso a destra del testo. Default e' 2x2.
indentpair!Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0.
scrollpair!Utilizzato per lo scrolling, default e' 0x0.
tabsinteger! o block!Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab. Default is 40.
wrap?logic!Indica se madare a capo automaticamente il testo.
March 25, 2011, at 05:04 PM by Massimiliano Vessi -
Changed lines 1184-1186 from:
  text "bC"
to:
  text "bC"]
Added lines 1188-1196:

Se volete sistemare un elemento in una posizione particolare, potete utilizzare il comando at e la posizione:

 view layout [
     text "proviamo"
     at 3x3 
     image logo.gif]
March 10, 2011, at 11:59 AM by 83.103.10.149 -
Changed lines 1841-1854 from:

con questo comando possiamo inserire il testo, mentre con il comando font possiamo scegliere il tipo di font utilizzare:

to:

ATTENZIONE: su Linux c'e' un piccolo bug, non trova il font giusto, prima di tutto aggiungete questo codice:

 switch system/version/4 [
  4 [ ;it's Linux
    my-font: make face/font [
	name: "/usr/share/fonts/truetype/freefont/FreeSans.ttf"   ;replace with your path to font you prefe
	size: 12
        ]
    ]
 ]

e usate my-font cone font per il testo, altrimenti non vedrete nessuna scritta e nessun disegno dopo il comando text.

TEXT: con questo comando possiamo inserire il testo, mentre con il comando font possiamo scegliere il tipo di font utilizzare:

December 07, 2010, at 02:22 PM by Massimiliano Vessi -
Changed lines 51-53 from:

Gruppo Facebook

http://www.facebook.com/home.php#/group.php?gid=99459740077&ref=ts

to:
December 07, 2010, at 02:21 PM by Massimiliano Vessi -
Changed line 38 from:

Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r

to:

Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r %height=40px%

December 07, 2010, at 02:15 PM by Massimiliano Vessi -
Changed line 36 from:

Il pagina Rebol World: http://www.maxvessi.net/rebsite/wr/ http://www.maxvessi.net/rebsite/wr/Earth.gif

to:

Il pagina Rebol World contenete tutti i siti dedicati a Rebol: http://www.maxvessi.net/rebsite/wr/ http://www.maxvessi.net/rebsite/wr/Earth.gif

December 07, 2010, at 02:14 PM by Massimiliano Vessi -
Changed lines 30-34 from:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

to:

Esiste il forum in italiano: http://rebol.forumup.it/ %height=40px%

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol %height=40px%

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077 %height=40px%

December 07, 2010, at 02:12 PM by Massimiliano Vessi -
Changed lines 30-32 from:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

to:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

December 07, 2010, at 02:11 PM by Massimiliano Vessi -
Changed lines 16-17 from:

http://www.rebol.com/download-view.html%height=50px%

to:

http://www.rebol.com/download-view.html%height=40px%

Changed line 20 from:

http://www.maxvessi.net/rebsite/Linux/ %height=50px%

to:

http://www.maxvessi.net/rebsite/Linux/ %height=40px%

December 07, 2010, at 02:10 PM by Massimiliano Vessi -
Changed lines 18-19 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian , il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian, il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

Changed line 30 from:

Esiste il forum in italiano: http://rebol.forumup.it/

to:

Esiste il forum in italiano: http://rebol.forumup.it/

December 07, 2010, at 02:08 PM by Massimiliano Vessi -
Changed lines 16-17 from:

http://www.rebol.com/download-view.html

to:

http://www.rebol.com/download-view.html%height=50px%

Changed line 20 from:

http://www.maxvessi.net/rebsite/Linux/ %height=50px%

to:

http://www.maxvessi.net/rebsite/Linux/ %height=50px%

December 07, 2010, at 02:04 PM by Massimiliano Vessi -
Changed line 16 from:

http://www.rebol.com/download-view.html

to:

http://www.rebol.com/download-view.html

December 07, 2010, at 02:01 PM by Massimiliano Vessi -
Changed line 20 from:

http://www.maxvessi.net/rebsite/Linux/

to:

http://www.maxvessi.net/rebsite/Linux/ %height=50px%

December 07, 2010, at 01:59 PM by Massimiliano Vessi -
Changed line 34 from:

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

to:

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

December 07, 2010, at 12:57 PM by Massimiliano Vessi -
Changed line 36 from:

Il pagina Rebol World: http://www.maxvessi.net/rebsite/wr/

to:

Il pagina Rebol World: http://www.maxvessi.net/rebsite/wr/ http://www.maxvessi.net/rebsite/wr/Earth.gif

December 07, 2010, at 10:26 AM by Massimiliano Vessi -
Changed line 974 from:

E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo il checksum e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':

to:

E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo conosce, il checksum e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':

December 07, 2010, at 10:24 AM by Massimiliano Vessi -
Added lines 970-987:

Checksum

E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo il checksum e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':

 checksum %prova.jpg
 == 13260183

ha molte opzioni, eccole:

  • /tcp -- Returns an Internet TCP 16-bit checksum.
  • /secure -- Returns a cryptographically secure checksum.
  • /hash -- Returns a hash value
    • size -- Size of the hash table (Type: integer)
  • /method -- Method to use
    • word -- Method: SHA1 MD5 (Type: word)
  • /key -- Returns keyed HMAC value
    • key-value -- Key to use (Type: any-string)
November 19, 2010, at 10:28 AM by Massimiliano Vessi -
Changed lines 1494-1553 from:

face - base face style blank-face - empty style (transparent, minimized) IMAGE - base style for images BACKDROP - image scaled to fill pane BACKTILE - image tiled to fill pane BOX - shortcut for image BAR - horizontal separator SENSOR - transparent sensor area KEY - keyboard action BASE-TEXT - base text style VTEXT - video text (light on dark) TEXT - document text BODY - document text TXT - document text BANNER - video text title VH1 - video text heading VH2 - video text heading VH3 - video text heading VH4 - video text heading LABEL - label for dark background VLAB - label for dark forms, right aligned LBL - label for light background LAB - label for light forms, right aligned TITLE - document title H1 - document heading H2 - document heading H3 - document heading H4 - document heading H5 - document heading TT - typewriter text (monospaced) CODE - source code text (monospaced) BUTTON - rectangular, rendered buttons CHECK - rectangular, rendered buttons CHECK-MARK - transparent sensor area RADIO - transparent sensor area CHECK-LINE - base text style RADIO-LINE - base text style LED - rectangular, rendered buttons ARROW - rectangular, rendered buttons TOGGLE - rectangular, rendered buttons ROTARY - rectangular, rendered buttons CHOICE - rectangular, rendered buttons DROP-DOWN - document text ICON - base face style FIELD - base face style INFO - base face style AREA - base face style SLIDER - base face style SCROLLER - base face style PROGRESS - base style for images PANEL - base style for images LIST - base style for images TEXT-LIST - document text ANIM - base style for images BTN - base face style BTN-ENTER - base face style BTN-CANCEL - base face style BTN-HELP - base face style LOGO-BAR - base style for images TOG - base face style

to:
  • face - base face style
  • blank-face - empty style (transparent, minimized)
  • IMAGE - base style for images
  • BACKDROP - image scaled to fill pane
  • BACKTILE - image tiled to fill pane
  • BOX - shortcut for image
  • BAR - horizontal separator
  • SENSOR - transparent sensor area
  • KEY - keyboard action
  • BASE-TEXT - base text style
  • VTEXT - video text (light on dark)
  • TEXT - document text
  • BODY - document text
  • TXT - document text
  • BANNER - video text title
  • VH1 - video text heading
  • VH2 - video text heading
  • VH3 - video text heading
  • VH4 - video text heading
  • LABEL - label for dark background
  • VLAB - label for dark forms, right aligned
  • LBL - label for light background
  • LAB - label for light forms, right aligned
  • TITLE - document title
  • H1 - document heading
  • H2 - document heading
  • H3 - document heading
  • H4 - document heading
  • H5 - document heading
  • TT - typewriter text (monospaced)
  • CODE - source code text (monospaced)
  • BUTTON - rectangular, rendered buttons
  • CHECK - rectangular, rendered buttons
  • CHECK-MARK - transparent sensor area
  • RADIO - transparent sensor area
  • CHECK-LINE - base text style
  • RADIO-LINE - base text style
  • LED - rectangular, rendered buttons
  • ARROW - rectangular, rendered buttons
  • TOGGLE - rectangular, rendered buttons
  • ROTARY - rectangular, rendered buttons
  • CHOICE - rectangular, rendered buttons
  • DROP-DOWN - document text
  • ICON - base face style
  • FIELD - base face style
  • INFO - base face style
  • AREA - base face style
  • SLIDER - base face style
  • SCROLLER - base face style
  • PROGRESS - base style for images
  • PANEL - base style for images
  • LIST - base style for images
  • TEXT-LIST - document text
  • ANIM - base style for images
  • BTN - base face style
  • BTN-ENTER - base face style
  • BTN-CANCEL - base face style
  • BTN-HELP - base face style
  • LOGO-BAR - base style for images
  • TOG - base face style
November 19, 2010, at 10:26 AM by Massimiliano Vessi -
Added lines 1489-1553:

Tutti i comandi di VID

Ecco la lista:

face - base face style blank-face - empty style (transparent, minimized) IMAGE - base style for images BACKDROP - image scaled to fill pane BACKTILE - image tiled to fill pane BOX - shortcut for image BAR - horizontal separator SENSOR - transparent sensor area KEY - keyboard action BASE-TEXT - base text style VTEXT - video text (light on dark) TEXT - document text BODY - document text TXT - document text BANNER - video text title VH1 - video text heading VH2 - video text heading VH3 - video text heading VH4 - video text heading LABEL - label for dark background VLAB - label for dark forms, right aligned LBL - label for light background LAB - label for light forms, right aligned TITLE - document title H1 - document heading H2 - document heading H3 - document heading H4 - document heading H5 - document heading TT - typewriter text (monospaced) CODE - source code text (monospaced) BUTTON - rectangular, rendered buttons CHECK - rectangular, rendered buttons CHECK-MARK - transparent sensor area RADIO - transparent sensor area CHECK-LINE - base text style RADIO-LINE - base text style LED - rectangular, rendered buttons ARROW - rectangular, rendered buttons TOGGLE - rectangular, rendered buttons ROTARY - rectangular, rendered buttons CHOICE - rectangular, rendered buttons DROP-DOWN - document text ICON - base face style FIELD - base face style INFO - base face style AREA - base face style SLIDER - base face style SCROLLER - base face style PROGRESS - base style for images PANEL - base style for images LIST - base style for images TEXT-LIST - document text ANIM - base style for images BTN - base face style BTN-ENTER - base face style BTN-CANCEL - base face style BTN-HELP - base face style LOGO-BAR - base style for images TOG - base face style

November 15, 2010, at 01:00 PM by Massimiliano Vessi -
Added lines 960-969:

Un altro modo molto comodo per organizzare i dati è mettere davanti ai dati la descrizione:

 a: [nome "Mario" cognome "Rossi" stipendio $1000 assunzione 15/5/1990 ]
 select a 'nome
 == "Mario"
 select a 'stipendio
 == $1000

In questo modo i dati possono essere inseriti in qualsiasi ordine.

November 12, 2010, at 05:23 PM by Massimiliano Vessi -
Added lines 35-36:

Il pagina Rebol World: http://www.maxvessi.net/rebsite/wr/

October 20, 2010, at 12:53 PM by Massimiliano Vessi -
Changed lines 1186-1196 from:

Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà. \\

to:

Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà.

Bottoni

Per i bottoni il comando e' button:

 view layout [
   button "Premi qui!" [ alert "Bravo!"]
October 05, 2010, at 07:14 PM by Massimiliano Vessi -
Added lines 1285-1291:

Per sapere quale elemento e' stato scelto, basta usare il raffinamento picked, esempio:

 view layout [ 
  a: text-list "Marco" "Laura" [print a/picked]
  ]
September 22, 2010, at 09:51 AM by Massimiliano Vessi -
Changed line 946 from:
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ] 
Changed line 948 from:
 == 
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23] ]
Changed line 953 from:
 == 
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23] ]
September 22, 2010, at 09:49 AM by Massimiliano Vessi -
Changed lines 937-939 from:
to:

Database

In Rebol esistono varie librerie per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

Per organizzare i dati basta creare una serie vuota:

 db: copy []
 == []

poi possiamo aggiungere i dati con il seguente comando (i dati sono di pura fantasia):

 append/only db  ["Nome" "Cognome" "0650603080" $40  52]
 == "Nome" "Cognome" "0650603080" $40.00  52? 
 append/only db  ["Gino" "Rossi" "068052080" $50  23]
 == 

poi possiamo salvare i dati con il seguente comando:

 save %file_dati.txt  db

e per recuperarli basta:

 db: load %file_dati.txt
 == 

In questa maniera abbiamo un database dove è semplicemente accessibile ogni elemento, ad esempio Gino e' db/2/1:

 db/2/1
 == "Gino
September 17, 2010, at 04:43 PM by Massimiliano Vessi -
September 17, 2010, at 04:40 PM by Massimiliano Vessi -
Changed lines 18-23 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure il paccheto Slackware in formato TGZ: rebol.tgz

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian , il paccheto Linux in formato RPM (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato TGZ da questo indirizzo:

http://www.maxvessi.net/rebsite/Linux/

September 16, 2010, at 05:22 PM by Massimiliano Vessi -
Added lines 930-940:

Criptare e decriptare

E' possibile sia decriptare che decriptare dei testi, basta usare encloak e decloack ; per entrambi i programmi e' necessario fornire la stessa chiave di criptazione:

 >> encloak "prova" "chiave"
 == "›ˆ\^X"
 >> decloak "›ˆ\^X"    "chiave"
 == "prova"
September 15, 2010, at 03:58 PM by Massimiliano Vessi -
Changed lines 20-22 from:

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure il paccheto Slackware in formato TGZ: rebol.tgz

to:

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure il paccheto Slackware in formato TGZ: rebol.tgz

September 15, 2010, at 03:44 PM by Massimiliano Vessi -
Changed line 22 from:
to:

Oppure il paccheto Slackware in formato TGZ: rebol.tgz

September 13, 2010, at 11:43 AM by Massimiliano Vessi -
Changed lines 18-20 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

September 10, 2010, at 05:40 PM by Massimiliano Vessi -
Changed line 20 from:

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

to:

Oppure il paccheto Linux in formato RPM: rebol.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

September 10, 2010, at 05:40 PM by Massimiliano Vessi -
Changed lines 18-20 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

September 10, 2010, at 03:33 PM by Massimiliano Vessi -
Changed line 20 from:

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

to:

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

September 10, 2010, at 03:32 PM by Massimiliano Vessi -
Changed line 20 from:

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm

to:

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm (Mandriva, Fedora, Red Hat, Suse, ecc.)

September 10, 2010, at 03:29 PM by Massimiliano Vessi -
Changed lines 18-20 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Oppure il paccheto Linux in formato RPM: rebol-2.7.7.4.3-5.i386.rpm

September 07, 2010, at 05:29 PM by Massimiliano Vessi -
Added lines 144-146:

Se dovete azzerare il valore di una stinga (soprattuto all'interno di funzioni), consiglio:

 temp: copy ""
September 02, 2010, at 12:25 PM by Massimiliano Vessi -
Changed lines 8-9 from:

In parole povere potete programmare in 5 minuti!

to:

In parole povere potete programmare in 5 minuti!, e funziona su Windows, Linux e Mac!

Changed line 18 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

September 02, 2010, at 12:24 PM by Massimiliano Vessi -
Changed line 18 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

September 01, 2010, at 11:42 AM by Massimiliano Vessi -
Changed lines 21-23 from:
to:
Added lines 61-63:
September 01, 2010, at 11:41 AM by Massimiliano Vessi -
Changed line 18 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: Attach:deb.jpg rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

September 01, 2010, at 11:40 AM by Massimiliano Vessi -
Changed line 18 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: Attach:deb.jpg rebol.deb

Changed line 18 from:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

to:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

Added lines 17-18:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: rebol.deb

July 06, 2010, at 01:43 PM by Massimiliano Vessi -
Changed lines 491-492 from:
to:

Funzioni Matematiche

Added lines 511-519:

Arrotondamento

L'arrotondamento si fa con il comando round/to (mentre il troncamento solo con round). Bisogna sempe impostare il fattore di arrotondamento, esempio:

 a: 10.123456
 == 10.123456
 round/to a 0.01
 == 10.12
July 02, 2010, at 11:36 AM by Massimiliano Vessi -
Changed line 517 from:

Un elenco delle funzioni piu' utili si puo' scaricare:

to:

Un elenco delle funzioni piu' utili si puo' scaricare dal seguenti link:

July 02, 2010, at 11:35 AM by Massimiliano Vessi -
Added lines 516-519:

Un elenco delle funzioni piu' utili si puo' scaricare:

ListaComandiRebol.pdf

June 25, 2010, at 10:32 AM by Massimiliano Vessi -
Changed line 1446 from:
	line 5x5  5x90view layout [image logo.gif effect [fit 100x100]]
to:
	line 5x5  5x90
June 25, 2010, at 10:18 AM by Massimiliano Vessi -
Changed line 322 from:

I blocchi

to:

I blocchi o serie

Added lines 328-331:

per creare una nuova serie usate i comando copy]

 b: copy []
June 09, 2010, at 04:56 PM by Massimiliano Vessi -
Changed line 1420 from:

Per avere RebGui o vi collegate al sito di chi l'ha scritto (ha anche la guida):

to:

Per avere RebGui o vi collegate al sito di chi l'ha scritto (c'e' anche la guida):

June 09, 2010, at 04:55 PM by Massimiliano Vessi -
Added lines 1419-1425:

Per avere RebGui o vi collegate al sito di chi l'ha scritto (ha anche la guida): http://www.dobeash.com/rebgui.html

o la scaricate da qui: rebgui.zip

June 09, 2010, at 04:52 PM by Massimiliano Vessi -
Added lines 1406-1418:

RebGui

Se VID e' semplice e basilare, esiste RebGUI che è una versione di VID molto più bella da poter utilizzare. Per usarla basta aggiungere :

 do %rebgui.r
 ;... il mio script ...
 ;... fine dello script...
 do-events

e avrete:

June 03, 2010, at 04:17 PM by Massimiliano Vessi -
Added lines 1272-1279:

Eseguire comandi allinterno di VID

E' difficile che dobbiate eseguire dei comandi, ma potrebbe risultarvi comodo per impostare alcune variabili. Beh, per eseguire dei comandi basta usare il comando do:

 view layout [ 
   button
   do [ print "Ciao mondo!"]
   ]
June 02, 2010, at 11:33 PM by Massimiliano Vessi -
Added lines 1239-1249:

Aggiungere uno scroller per gli elementi di testo

Per aggiungere uno scroller per scorrere gli elementi di testo, basta usare il comando scroll-para, questo comando collega uno elemnto di testo con uno scroller:

 view layout [across  
   a: area 
   b: scroller [scroll-para a b]
   ]
June 01, 2010, at 11:29 AM by Massimiliano Vessi -
Changed line 573 from:

Clipboard (copie e incolla)

to:

Clipboard (copia e incolla)

Added lines 580-594:

Informazioni sui DNS

Ecco un esempio

 print read dns://msn.com 

Gruppi usenet

 print read nntp://public.teranews.com        
 ; (Hit the [ESC] key to stop
 ;   this Usenet listing.)

oppure

 print read nntp://news.eternal-september.org
June 01, 2010, at 11:02 AM by Massimiliano Vessi -
Added lines 571-579:

Clipboard (copie e incolla)

E' possibile leggere la clipboard, cioe' il luogo del computer dove si memorizzano i dati del copia di ogni programma. Esempio:

 a: read clipboard://
 ;oppure
 editor clipboard://
June 01, 2010, at 10:55 AM by Massimiliano Vessi -
Added lines 559-571:

Altri protocolli di comunicazione

Con Rebol e' possibile leggere e scrivere da altre fonti, ecco alcuni esempi:

Internet

Leggere da internet e' semplicissimo: riconosce automaticamente un indirizzo web, quindi se volete leggere una pagina:

 editor http://www.rebol.com
 ;oppure
 a: read http://www.rebol.com
May 28, 2010, at 04:41 PM by Massimiliano Vessi -
Added lines 1225-1283:

Capire le variabili utilizzabili di un elemento

Molte volte e' difficile capire cosa si puo' sfruttare di un elemento di VID, il seguente script vi aiutera':

 view layout [ b: check a: button [ ? b]]

Come vedete il punto interrogativo può essere usato come help sugli elementi VID, infatti la risposta che otterrete premendo il pulsante è (usate prima l'elemento per attivarne alcuni valori, ad esempio data e' null finche' non ci cliccate sopra:

 B is an object of value:
   type            word!     face
   offset          pair!     20x20
   size            pair!     16x16
   span            none!     none
   pane            none!     none
   text            none!     none
   color           tuple!    240.240.240
   image           none!     none
   effect          block!    length: 1
   data            logic!    true
   edge            object!   [color image effect size]
   font            none!     none
   para            none!     none
   feel            object!   [redraw detect over engage cue blink]
   saved-area      none!     none
   rate            none!     none
   show?           logic!    true
   options         none!     none
   parent-face     object!   [type offset size span pane text color image effec...
   old-offset      pair!     20x20
   old-size        pair!     16x16
   line-list       none!     none
   changes         none!     none
   face-flags      integer!  1
   action          none!     none
   state           logic!    false
   access          object!   [set-face* get-face* clear-face* reset-face*]
   style           word!     check
   alt-action      none!     none
   facets          none!     none
   related         none!     none
   words           none!     none
   colors          none!     none
   texts           none!     none
   images          none!     none
   file            none!     none
   var             word!     b
   keycode         none!     none
   reset           none!     none
   styles          none!     none
   init            block!    length: 0
   multi           object!   [text size file image color block]
   blinker         none!     none
   pane-size       pair!     140x88
   dirty?          none!     none
   help            none!     none
   user-data       none!     none
   flags           block!    length: 2
   doc             object!   [info string image logic integer pair tuple file u...
   effects         none!     none
   depth           integer!  128
May 28, 2010, at 02:08 PM by Massimiliano Vessi -
Added lines 1216-1224:

Nascondere e mostrare

E' possibile far scomparire e riapparire gli elementi di VID con i comandi show e hide, ecco un esempio molto divertente:

 view layout [
    a: text "Testo magico" 
    button "Nascondi" [ hide a] 
    button "Mostra" [show a]
    ]
May 28, 2010, at 02:02 PM by Massimiliano Vessi -
Changed lines 1129-1136 from:
to:

Casella di controllo (check)

La casella check può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:

 view layout [
    a: check [b/text: a/data show b ] 
    b: text 100x20
    ]
May 20, 2010, at 06:01 PM by Massimiliano Vessi -
Added lines 34-35:

Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r

April 27, 2010, at 07:02 PM by Massimiliano Vessi -
Changed lines 973-982 from:
to:

Eseguire operazioni

E' possibile eseguire delle operazioni, basta metterle tra parentesi tonde, ad esempio:

 a: "Che bella persona!"
 parse a [
    to "bella" (print "trovato bella") 
    to "persona" (print "trovato persona") 
    to end
    ]
 ==trovato bella
 ==trovato persona
April 27, 2010, at 06:59 PM by Massimiliano Vessi -
Changed lines 949-952 from:

Il comando 'end serve a dire che dopo non ci deve essere nulla.

to:

Il comando 'end serve a dire che dopo non ci deve essere nulla.

Added line 953:
Added lines 960-973:

Charset (set di caratteri)

E' possibile specificare un set di caratteri, per esempio da 0 a 9, con il comando charset

 numeri: charset "0123456789"
 a: "067025555"
 parse a [some numeri]
 == true

e' possibile anche indicare da che valore della tabella ASCII cominciare e finire per il set:

 lettere_min: charset [#"a" - #"z"]
 lettere: charset [#"A" - #"Z" #"a" - #"z"]
April 27, 2010, at 06:54 PM by Massimiliano Vessi -
Added lines 922-936:

Se non sapete quante volte, potete scrivere any (da zero in poi) o some (almeno uno):

 frase: "b"
 parse frase [ some "a"]
 == false
 parse frase [ any "a"]
 == true
 frase: "aaaab"
 parse frase [ some "a"]
 == true
 parse frase [ any "a"]
 == true
April 27, 2010, at 06:50 PM by Massimiliano Vessi -
Deleted lines 880-887:

Opzioni

Il carattere | permette di dare delle opzioni:

 a: "fiore"
 parse a ["fiore" | "casa"]
 == true
Added line 882:

L'uso piu' semplice di parse e' per suddividere.

Changed lines 891-896 from:

Testare

Si puo' richiedere al comando 'parse se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max e' ripetuto 4 volte:

 esemp: "Max Max Max Max"
 parse esemp [4 "Max"]
to:

Uso avanzato

parse e' uno strumento molto potente, perche' dopo la stringa da analizzare potete mettere tutta una serie di comandi e opzioni per controllare che la stringa corrsponda a quanto richiesto e se si (o solo per alcune parti), faccia qualcosa.

Opzioni

Il carattere | permette di dare delle opzioni:

 a: "fiore"
 parse a ["fiore" | "casa"]
Added lines 901-920:

ma andiamo oltre:

 mezzo: [ "in moto" | "in macchina"]
 chi: ["Sara" | "Laura"]
 parse frase [ chi mezzo ]

parse restituisce vero per tutte le combinazioni:

  • "Sara in moto"
  • "Sara in macchina"
  • "Laura in moto"
  • "Laura in macchina"

Testare

Si puo' richiedere al comando 'parse se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max e' ripetuto 4 volte:

 esemp: "Max Max Max Max"
 parse esemp [4 "Max"]
 == true
Added lines 933-936:

Il comando 'end serve a dire che dopo non ci deve essere nulla.

Added line 939:
April 27, 2010, at 11:31 AM by Massimiliano Vessi -
Added lines 881-888:

Opzioni

Il carattere | permette di dare delle opzioni:

 a: "fiore"
 parse a ["fiore" | "casa"]
 == true
Added lines 910-918:

Saltare l'input

Con i comandi to e thru e' possibile saltare il contenuto di una stringa fino ad un certo punto. to prima della sequenza scelta, thru dopo. Esempi:

 >> a: "fiore.jpg" 
 >> parse a [thru "." ["jpg"|"gif"] end]
 == true
 >> parse a [to "." [".jpg"|".gif"] end]
 == true

In questo modo abbiamo controllato se il nome è di una immagine.

April 27, 2010, at 11:25 AM by Massimiliano Vessi -
Added lines 902-908:

Controllare l'estensione di un file

Per controllare l'estensione di un file con parse e' molto semplice, proviamo a controllare che il file sia un PDF:

 a: request-file
 b: parse to-string a [ thru ".pdf" end]
 if b [alert "E' un PDF!"]
April 22, 2010, at 05:05 PM by Massimiliano Vessi -
Changed line 138 from:

Caratteri speciali per le stringhe

to:

Caratteri speciali per le stringhe

April 20, 2010, at 03:19 AM by Massimiliano Vessi -
Changed lines 16-18 from:

http://www.rebol.com/download-view.html

to:

http://www.rebol.com/download-view.html

Changed lines 29-33 from:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

to:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

April 20, 2010, at 03:14 AM by Massimiliano Vessi -
Changed lines 31-33 from:

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

to:

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

E il gruppo Facebook: http://www.facebook.com/home.php#/group.php?gid=99459740077

April 20, 2010, at 03:10 AM by Massimiliano Vessi -
Changed lines 29-31 from:

Ed esiste il forum in lingua inglese:

http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

to:

Esiste il forum in italiano: http://rebol.forumup.it/

Ed esiste il forum in lingua inglese: http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

April 07, 2010, at 06:18 PM by Massimiliano Vessi -
Changed line 10 from:

Adesso è disponibile anche le lezioni video: RebolVideoGuida

to:

Adesso sono disponibili anche le lezioni video: RebolVideoGuida

April 07, 2010, at 06:18 PM by Massimiliano Vessi -
Changed lines 9-11 from:

'''Adesso è disponibile anche le lezioni video: RebolVideoGuida

to:

Adesso è disponibile anche le lezioni video: RebolVideoGuida

April 07, 2010, at 06:17 PM by Massimiliano Vessi -
Added line 9:

'''Adesso è disponibile anche le lezioni video: RebolVideoGuida

April 07, 2010, at 06:08 PM by Massimiliano Vessi -
Changed line 26 from:

Ed esiste il forum in lingua inglese:

to:

Ed esiste il forum in lingua inglese:

April 07, 2010, at 06:08 PM by Massimiliano Vessi -
Added lines 26-28:

Ed esiste il forum in lingua inglese:

http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol

April 05, 2010, at 11:29 PM by Massimiliano Vessi -
Added lines 305-309:

Eseguire programmi esterni

Molte volte esistono programmi scritti in altri linguaggi che sono gia' pronti a fare quello che ci serve, con Rebol e' possibili usarli. Per lanciare un eseguibile, basta usare il comando call, esempi:

 >> call notpad.exe
 >> call "ls -l"
April 05, 2010, at 10:51 PM by Massimiliano Vessi -
Added lines 292-305:

Spostarsi tra le cartelle

Se eseguiamo un programma, esso verrà eseguito nella cartella dove si trova il programma. Che cartella e'? Il comando what-dir ci viene in aiuto e ce lo svela:

 >> what-dir 
 == %/home/max/Libri/

Per spostarci possiamo usare il comando change-dir:

 >> change-dir %/home/max/Libri/
 == %/home/max/Libri/
April 02, 2010, at 04:57 PM by Massimiliano Vessi -
Changed line 594 from:
 "Una funaione per fare la somma e a media di numeri"
to:
 "Una funzione per fare la somma e a media di numeri"
Added lines 609-626:

Funzioni ricorrenti

Una funzione ricorrente e' una funzione che chiama se stessa per eseguire piu' volte la stessa cosa. E' utile ma e' anche molto facile creare cicli infiniti da cui non si esce piu'.

Vediamo un caso concreto: cerchiamo di entrare in tutte le cartelle, partendo da dove e' eseguito il programma. Ecco come si fa:

 funz_ric: func [ /local a] [
  a: read %.
  foreach nome a [
    if dir? nome [
      print reform ["Entro dentro " nome]
      change-dir nome
      funz_ric 
      change-dir %..
      ]
   ]
 ]
February 19, 2010, at 07:07 PM by Massimiliano Vessi -
Changed line 142 from:
  • ^(xx) inserisce un carattere ACII, dove xx sta per il valore esadecimaleexpansion into unicode characters in the future.
to:
  • ^(xx) inserisce un carattere ACII, dove xx sta per il valore esadecimale
February 19, 2010, at 07:07 PM by Massimiliano Vessi -
Added line 126:
Added lines 129-143:

Caratteri speciali per le stringhe

  • ^" insericsce i doppi apici "
  • ^} Inserisce la graffa destra }
  • ^^ inserisce l'accento circonflesso ^
  • ^/ o ^(line) inserisce l'accapo
  • ^- o ^(tab) inserice un TAB
  • ^(page) comincia una nuova pagina
  • ^(back) cancella il carattere prima
  • ^(null) inserisce un carattere vuoto
  • ^(escape) inserisce Esc
  • ^(letter) inserisce un alettera di controllo (A-Z).
  • ^(xx) inserisce un carattere ACII, dove xx sta per il valore esadecimaleexpansion into unicode characters in the future.
January 21, 2010, at 03:23 PM by Massimiliano Vessi -
Added lines 14-16:
January 21, 2010, at 02:20 AM by Massimiliano Vessi -
Changed lines 1112-1114 from:

Possiamo impostare una rotazione

 view layout [ image logo.gif effect [ rotate 90]]
to:

Effetti alle immagini

E' possibile applicare tutta una serie di effetti alle immagini:

FIT

Scala l'immagine

 view layout [image logo.gif effect [fit 100x100]]

ASPECT

Scala l'immagine ma preseerva le proporzioni:

 view layout [image logo.gif effect [aspect 100x100]]
Changed line 1144 from:
	line 5x5  5x90
to:
	line 5x5  5x90view layout [image logo.gif effect [fit 100x100]]
January 21, 2010, at 02:02 AM by Massimiliano Vessi -
Changed lines 1091-1092 from:
to:

Immagini

E' possibile mettere delle immagini con il comando image:

 view layout [
    image logo.gif
    ]

Modificare le immagini

Rebol permette di modificare le immagini, con tante funzioni a disposizioni. Prima di tutto carichiamo un'immagine:

 a: load %esempio.jpg

poi possiamo estrarre delle informazioni(altezza e larghezza):

 b: a/size/x
 c: a/size/y

a questo punto possiamo anche cambiare le dimensioni dell'immagine:

 view layout[
    image a 50x50
    ]

Poi se si mette un colore apparira' come sfondo

 view layout [ image 200.123.200 logo.gif]

Possiamo impostare una rotazione

 view layout [ image logo.gif effect [ rotate 90]]
January 12, 2010, at 12:31 PM by Massimiliano Vessi -
Added lines 79-81:

MAC

Si scarica si decomprime e si installa come tutti i programmi.

January 12, 2010, at 12:30 PM by Massimiliano Vessi -
Added lines 62-67:

Scaricarlo

Basta scaricarlo da qui: http://www.rebol.com/download-view.html

January 12, 2010, at 12:29 PM by Massimiliano Vessi -
Changed line 7 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

Changed lines 11-12 from:

'''Si scarica da qui:

to:

Si scarica da qui:

Changed line 14 from:

'''

to:
January 12, 2010, at 12:28 PM by Massimiliano Vessi -
Changed line 7 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)

Added lines 11-14:

'''Si scarica da qui:

http://www.rebol.com/download-view.html '''

January 11, 2010, at 02:03 AM by Massimiliano Vessi -
Added line 1404:
  • data, i dati del file audio
Added lines 1410-1413:

si modificano come i dati di un oggetto:

 a: load %esempio.wav
 a/volume: 0.5
 a/channels: 2
January 11, 2010, at 01:59 AM by Massimiliano Vessi -
Added lines 1402-1408:

Migliorare l'audio

Quando carichiamo un suono, possiamo modificare la qualita' del suono. E' possibili variare i seguenti parametri:

  • volume, il volume dell'audio; valore tra 0 e 1
  • channels, quanti canali se 1 o 2
  • bits, i bit di campionamento se 8, 16, 24, 32
  • rate, il frequenza di campionamento in Hertz
January 08, 2010, at 06:07 PM by Massimiliano Vessi -
Added lines 1397-1401:
 audio1: open sound://
 a: load %esemepio.wav
 insert audio1 a
 wait audio1
 close audio1
January 08, 2010, at 05:46 PM by Massimiliano Vessi -
Changed lines 1395-1397 from:

to:

Suonare un file

Rebol accetta come formato dei file il wav. Ecco come far suonare un file:

January 08, 2010, at 05:41 PM by Massimiliano Vessi -
Changed lines 1388-1395 from:

Come avete visto dall'esempio, per aprire una porta audio

to:

Come avete visto dall'esempio, per aprire una porta audio bisogna usare il seguente comando:

 audio1: open sound://

al posto della variabile audio1 potete usare quello che vi pare. Una volta aperta la porta, le altre applicazioni non possono accedervi. Quando abbiamo finito con l'audio ricordiamo di chiuderlo:

 close audio1

January 08, 2010, at 05:34 PM by Massimiliano Vessi -
Added lines 1374-1388:

Suono

Con Rebol e' possibile anche utilizzare i suoni.

Aprire e chiudere una porta audio

L'audio per Rebol e' una porta quindi va aperta e chiusa. Per vedere se potete usare l'audio, lanciate:

 if error? try [
 sound-port: open sound://
 close sound-port
 ] [
 alert "Non puoi accedere all'audio"
 quit
 ]

Se non vi appare un messaggio di errore, potete usare l'audio.

Come avete visto dall'esempio, per aprire una porta audio

January 08, 2010, at 01:25 PM by Massimiliano Vessi -
Added lines 45-49:

Video Guida

Esiste anche una guida fatta da filmati su youtube, potete vederli qui: Rebol Video Guida

December 31, 2009, at 10:55 AM by Massimiliano Vessi -
Changed line 357 from:
  • controllare se almeno una delle variabili e' uguale a 23
to:
  • controllare se almeno una delle variabili e' uguale a 23
December 31, 2009, at 10:54 AM by Massimiliano Vessi -
Changed lines 376-410 from:
to:

ANY

Significa uno qualunque, e ritorna il valore che incontra che non sia falso nel blocco:

 a: -3
 b: -5
 c: -7
 d: 9
 if any [(a > 1) (b > 1) c > 1 d > 1 ] [print "c'e' ne almeno uno che e' maggiore di 1"]
 == c'e' ne almeno uno che e' maggiore di 1

NOT

E' la negazione del risultato (se e' vero diventa falso e viceversa):

 a: 5
 a = 5
 == true
 not a = 5
 == false

OR

 O logico, ritorna vero se una delle due espressioni e' vera:
 a: -5
 b: 2
 if (a > 0) or (b > 0) [print "Almeno una variabile e' maggiore di zero"]
 == Almeno una variabile e' maggiore di zero

XOR

XOR restituisce vero solo se uno e' vero e l'altro e' falso:

 >> true xor false
 == true
 >> true xor true
 == false
 >> false xor false
 == false
December 31, 2009, at 10:42 AM by Massimiliano Vessi -
Changed lines 353-374 from:
to:

Funzioni Logiche

Molte volte bisogna descrivere una condizione complicata, dove c'e' la necessita' di dover avere due o piu' condizioni da verificare contemporaneamente, grazie alle funzioni logiche possiamo chiedere a Rebol di verificare se sono vere tuee od alcune condizioni. Esempi:

  • controllare che la variabile a e' maggiore di 5 o minore di 3.
  • controllare se almeno una delle variabili e' uguale a 23

AND

Rapresenta E logico:

 a: 3
 b: 5
 if (a > 1) and (b > 1) [print "a e b sono entrambi maggiori di 1"]
 == a e b sono entrambi maggiori di 1

ALL

Rappresenta tutti veri, controlla se tutte le espressioni nel blocco sono vere e esce con l'ultimo valore del blocco. In pratica e come avere tutti and uno dietro l'altro, ma con una piccola sofisticazione in piu' per renderlo piu' versatile:

 a: 3
 b: 5
 c: 7
 d: 9
 if all [(a > 1) (b > 1) c > 1 d > 1 true] [print "sono tutti maggiori di 1"]
 == sono tutti maggiori di 1
December 31, 2009, at 09:34 AM by Massimiliano Vessi -
Added lines 291-297:

EITHER

Questo comando serve per fare delle scelte fra 2 opzioni, il primo blocco saranno sel istruzioni se la condizione e' vera; il secondo blocco se l'istruzione e' falsa:

 >>a: 3
 >> either a > 1 [ print "E' vero: a e' maggiore di 2"] [ 
 >>    print "E' falso: a e' minore di 2"]
 == "E' vero: a e' maggiore di 2"
December 23, 2009, at 06:19 PM by Massimiliano Vessi -
Added lines 1285-1306:

TRANSLATE (traslare)

Trasla l'origine, con il comando reset-matrix rimettete tutto a posto:

ArgomentoTipoDescrizione
traslazionecoppiaspostamento dell'origine
 view layout [ box 100x100 effect [ draw [
            circle 1x1 10
            pen red
            translate 20x20
            circle 1x1 10
            pen blue
            translate 20x20
            circle 1x1 10
            reset-matrix
            pen green
            box  1x1 10x10
            ]]]
December 23, 2009, at 06:12 PM by Massimiliano Vessi -
Added lines 1269-1284:

TEXT (testo)

con questo comando possiamo inserire il testo, mentre con il comando font possiamo scegliere il tipo di font utilizzare:

ArgomentoTipoDescrizione
testostringala stringa da inserire
posizionecoppiala posizione della frase da inserire
modoanti-aliased/vectorial/aliasedla modalità nello scriverla (opzionale)
 view layout [ box 300x100 effect [ draw [
            text "This is a string of text  - Default size (12)" 1x10
            text aliased "This is a string of text 2" 1x25
            text vectorial "This is a string of text 1" 1x75
            ]]]
December 23, 2009, at 06:04 PM by Massimiliano Vessi -
Changed lines 1122-1131 from:

CURVE

Il comando CURVE vi permette di ottenere una curva morbida che passa tra 3 o 4 punti (Curva di Beizer):

ArgomentoTipoDescrizione
Punto 1CoppiaPrimo estremo della curva
Punto 2CoppiaSecondo punto della curva
Punto 3CoppiaTerzo punto della curva
Punto 4CoppiaQuarto punto della curva (opzionale)
to:

FILL-PEN

Il comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:

Deleted lines 1127-1134:
            curve 1x90  50x3 32x90 90x10 ]]]

FILL-PEN

Il comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:

 view layout [ box 100x100 effect [ draw [
Added lines 1249-1268:

SPLINE (linea curva)

Permette di ottenere una linea curva tra un qualsiasi numero di punti, la curva sara' molto morbida se sara' indcato un numero di segmenti da utilizzare elevato:

ArgomentoTipoDescrizione
numero segmentiinteronumero di segmenti tra ogni punto
closedclosedparola da utilizzare se la si vuole chiusa (opzionale)
puntocoppiaprimo punto
puntocoppiasecondo punto
puntocoppiaterzo punto
...coppia...
 view layout [ box 100x100 effect [ draw [
            spline 10 closed 20x20  25x90 80x80 70x25
            pen red spline 2 closed 20x20  25x90 80x80 70x25
            ]]]
December 23, 2009, at 05:49 PM by Massimiliano Vessi -
Added lines 1247-1261:

SCALE (scalare)

Si cambia la scala dei comandi, si puo' scegliere che valga solo per un asse:

ArgomentoTipoDescrizione
scala su xdecimalescala dell'asse x
scala su ydecimalescala dell'asse y
 view layout [ box 100x100 effect [ draw [
            fill-pen red box 0x0 100x100
            scale 0.5 0.5
            fill-pen blue box 0x0 100x100
            ]]]
December 23, 2009, at 05:14 PM by Massimiliano Vessi -
Changed lines 1231-1246 from:
to:

ROTATE (ruotare)

Con rotate si ruota il sistema di riferimento per i comandi che vengono dopo:

ArgomentoTipoDescrizione
angolodecimaleangolo di rotazione
 view layout [ box 100x100 effect [ draw [
            fill-pen blue box 1x1 25x25
            rotate 30
            box 50x50 25x25
            box 90x1 50x50
            ]]]
December 23, 2009, at 05:05 PM by Massimiliano Vessi -
Changed line 1225 from:

view layout [ box 100x100 effect [ draw [

to:
 view layout [ box 100x100 effect [ draw [
December 23, 2009, at 05:04 PM by Massimiliano Vessi -
Added lines 1215-1231:

Polygon

Serve per fare figure chiuse:

ArgomentoTipoDescrizione
puntocoppiaprimo punto
puntocoppiasecondo punto
puntocoppiaterzo punto
...coppia...

view layout [ box 100x100 effect [ draw [

            polygon 1x1  1x60 60x1 50x50
            ]]]
December 23, 2009, at 04:59 PM by Massimiliano Vessi -
Changed lines 1193-1194 from:
spessoredecimalespessore della linea
to:
spessoredecimalespessore della linea
Added lines 1200-1214:

PEN (impostare i colori)

Con il comando PEN si impostano il colore della penna:

ArgomentoTipoDescrizione
coloretriplettacolore linea
coloretriplettacolore linea pattern (opzionale)
immaginetriplettaper usare un'immagine
 view layout [ box 100x100 effect [ draw [
            pen yellow red  line-width 5  box 50x50 250x250
            pen logo.gif  line-width 10  box 0x0  50x50
            ]]]
December 23, 2009, at 04:46 PM by Massimiliano Vessi -
Added lines 1188-1199:

LINE-WIDTH (spessore linea)

Usato per variare lo spessore delle linee:

ArgomentoTipoDescrizione
spessoredecimalespessore della linea
 view layout [ box 100x100 effect [ draw [
            line-width 5  line 50x50 70x100 80x50 25x90
            ]]]
December 22, 2009, at 11:26 AM by Massimiliano Vessi -
December 22, 2009, at 11:25 AM by Massimiliano Vessi -
Added lines 1171-1187:

LINE (linee e spezzate)

Se volete disegnare una linea o una spezzata, questo e' il comando di cui avete bisogno:

ArgomentoTipoDescrizione
Punto 1CoppiaPrimo punto
Punto 2Coppiasecondo punto
Punto 3Coppiaterzo punto (opzionale)
Punto 4Coppiaquarto punto (opzionale)
Punto ...Coppia... punto (opzionale), e cosi' via
 view layout [ box 100x100 effect [draw [
   line 1x1 90x1 1x90 90x90 50x50 ]]]
December 21, 2009, at 06:17 PM by Massimiliano Vessi -
Added lines 1169-1170:
December 21, 2009, at 05:42 PM by Massimiliano Vessi -
Changed line 1160 from:

view layout [ box 300x300 effect [ draw [

to:
 view layout [ box 250x250 effect [ draw [
Changed line 1162 from:
            image logo.gif 100x100 300x200
to:
            image logo.gif 1x50 100x100
Changed line 1164 from:
            image logo.gif 100x100 border
to:
            image logo.gif 1x100 border
Changed lines 1166-1168 from:
            image logo.gif 100x100 254.254.254 border
            image logo.gif 50x100 400x00 400x400 50x200
            image logo.gif 10x10 350x200 250x300 50x300
to:
            image logo.gif 120x1 254.254.254 border
            image logo.gif 1x150 150x180 150x200 1x200
December 21, 2009, at 05:06 PM by Massimiliano Vessi -
Changed lines 1145-1169 from:
to:

Image (immagini)

Per mettere un'immagine, grazie al comando IMAGE abbiamo tantissime opzioni: si può indicare la poszione, la forma indicando 2 o 4 punti,

ArgomentoTipoDescrizione
Immagineimmaginela variabile immagine da mostrare
Punto 1CoppiaPrimo estremo alto a sinistra
Punto 2CoppiaSecondo estremo punto basso a destra (opzionale)
Punto 3CoppiaTerzo punto (opzionale)
Punto 4CoppiaQuarto punto (opzionale)
Colore trasparentetriplettaColore da rendere trasparente (opzionale)
BordoborderSe mettere una cornice (opzionale)

view layout [ box 300x300 effect [ draw [

            image logo.gif 1x1
            image logo.gif 100x100 300x200
            pen yellow red line-width 5 line-pattern 5 5
            image logo.gif 100x100 border
            pen yellow red line-width 5 line-pattern 5 5
            image logo.gif 100x100 254.254.254 border
            image logo.gif 50x100 400x00 400x400 50x200
            image logo.gif 10x10 350x200 250x300 50x300
            ]]]
December 21, 2009, at 02:08 PM by Massimiliano Vessi -
Added lines 1136-1145:

FILL-PEN

Il comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:

 view layout [ box 100x100 effect [ draw [
   fill-pen blue  box 10x10 90x90
    fill-pen yellow circle 30x70 20
   ]]]
December 21, 2009, at 01:56 PM by Massimiliano Vessi -
Changed lines 1106-1107 from:

CIRCLE (cerchi ed ellissi)

to:

CIRCLE (cerchi ed ellissi)

Added lines 1122-1135:

CURVE

Il comando CURVE vi permette di ottenere una curva morbida che passa tra 3 o 4 punti (Curva di Beizer):

ArgomentoTipoDescrizione
Punto 1CoppiaPrimo estremo della curva
Punto 2CoppiaSecondo punto della curva
Punto 3CoppiaTerzo punto della curva
Punto 4CoppiaQuarto punto della curva (opzionale)
 view layout [ box 100x100 effect [ draw [
            curve 1x90  50x3 32x90 90x10 ]]]
December 21, 2009, at 01:14 PM by Massimiliano Vessi -
Added lines 1105-1121:

CIRCLE (cerchi ed ellissi)

Il comando permette di fare cerchi ed ellissi, pieni o vuoti. Per fare cerchi basta indicare un raggio solo:

ArgomentoTipoDescrizione
CentroCoppiaCentro della figura
Raggio XDecimaleRaggio della circonferenza o primo asse dell'ellisse
Raggio YDecimaleRaggio del secondo asse dell'ellissi
 view layout [ box 100x100 effect [ draw [
            circle 30x30  20
            circle 60x60  35 15 ]]]
December 17, 2009, at 02:01 PM by Massimiliano Vessi -
Changed lines 1046-1047 from:

Il comando 'ARC serve per fare archi, ellissi e circonferenze. Sinossi:

to:

Il comando ARC serve per fare archi, ellissi e circonferenze. Sinossi:

Changed lines 1085-1105 from:
to:

BOX (rettangoli)

Per fare rettangoli, se scrivete fill-pen prima il rettangolo sarà pieno; potete riempirlo anche con una immagine (ripetuta):

ArgomentoTipoDescrizione
Angolo in alto sinistraCoppiaPrimo angolo del rettangolo
Angolo in basso a destraCoppiaUltimo angolo del rettangolo
Raggio di curvaturaDecimaleSe volete gli angoli arrotondati e di quanto

Esempio:

 view layout [ box 100x100  effect [ draw [ 
    box 10x10  30x30
    fill-pen red box 30x30 40x40
    fill-pen logo.gif box 10x50 60x90 ]]]  
December 17, 2009, at 01:37 PM by Massimiliano Vessi -
Added lines 1059-1060:
Changed line 1073 from:
  box 500x500 effect [ 
to:
  box 350x350 effect [ 
Changed lines 1078-1084 from:
   arrow 1x2  curve 50x50 300x50 50x300 300x300
   pen green
   arrow 1x2  spline 3 30x30 200x70 150x200 70x300 80x300 200x200
   pen black
   arrow 1x2  spline closed 3 20x20 250x70 170x200 400x300 80x300 180x200
   pen white
   arrow 1x2  polygon 40x40 200x90 150x220 50x320
to:
   arrow 1x2  curve 50x50 300x50 50x300 300x300   
Changed line 1080 from:
   arrow 1x2  box 400x400 330x330
to:
   arrow 1x2  box 100x50 230x330
Added line 1085:
November 25, 2009, at 01:16 AM by Massimiliano Vessi -
Changed line 1049 from:
!Argomento!Tipo!Descrizione
to:
ArgomentoTipoDescrizione
November 25, 2009, at 01:15 AM by Massimiliano Vessi -
Changed line 1065 from:
!Argomento!Tipo!Descrizione
to:
ArgomentoTipoDescrizione
November 10, 2009, at 05:06 PM by Massimiliano Vessi -
Added lines 30-33:

Gruppo Facebook

http://www.facebook.com/home.php#/group.php?gid=99459740077&ref=ts

November 05, 2009, at 05:08 PM by Massimiliano Vessi -
Added lines 726-756:

Parsing (ovvero trovare nel testo)

Il parsing con Rebol è semplice e potente, ma solo se si conoscono le regole del comando parse. Di regola non distingue fra caratteri maiuscoli o minuscoli a meno che non si usa la raffinazione /case.

Suddividere

Per suddividere una stringa o un documento, basterà indicare il carattere o la sequenza di caratteri da usare come riferimento. Gli spazi vengono sempre usati a meno che non si usa la raffinazione /all:

 esemp: "Ciao, mi chiamo Max, tu come ti chiami?"
 parse esemp none
 == ["Ciao" "mi" "chiamo" "Max" "tu" "come" "ti" "chiami?"]
 parse/all esemp ", "
 == ["Ciao" "mi chiamo Max" "tu come ti chiami?"]

Testare

Si puo' richiedere al comando 'parse se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max e' ripetuto 4 volte:

 esemp: "Max Max Max Max"
 parse esemp [4 "Max"]
 == true

Ora chiediamo se è ripetuta tra 2 e 5:

 parse esemp [2 5 "Max"]
 == true
November 04, 2009, at 09:31 AM by Massimiliano Vessi -
Changed line 34 from:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
to:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi. Se invece andate su http://www.rebol.org troverete centinaia di programmi da scaricare e studiare.
October 19, 2009, at 02:03 PM by Massimiliano Vessi -
Changed line 29 from:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

to:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg

October 19, 2009, at 01:58 PM by Massimiliano Vessi -
Changed line 29 from:

width=200px http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

to:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

October 19, 2009, at 01:57 PM by Massimiliano Vessi -
Added lines 523-537:

E' possibile creare un oggetto con una funzione:

 esempio: make object! [
    nome: "esempio"
    creazione: now
    ora_corrente: func [] [now]
    somma: func [ a b ] [ a + b]
    ]

e poi lanciate

  print esempio
  esempio/ora_corrente
  esempio/somma 2 3
Added lines 560-564:

Estrarre i valori

Se vogliamo estrarre un valore possiamo richiamarlo cosi':

 print moto/km
 print honda/luci
October 19, 2009, at 01:46 PM by Massimiliano Vessi -
Added line 471:

Aggiungere un raffinamento

Added lines 509-547:

Creare un oggetto

Per capire bene gli oggetti bisogna mettere subito in pratica la loro utilita'; creiamo un oggetto "moto", che conterra' dei valori per freni, km e luci

 moto: make object! [
   luci: "funzionano"
   freni: "a disco"
   km:  63000
   ]

ora possiamo esaminare l'oggetto moto con il comando probe o print, che hanno risultati leggermente diversi:

 print moto
 probe moto

Usare un oggetto

Abbiamo creato l'oggetto moto, ora possiamo creare altri oggetti come moto, che abbiano proprio moto come padre:

 guzzi: make moto [  ]

in questa maniera l'oggetto guzzi avra' gli stessi valori dell'oggetto padre moto.

Se invece facciamo cosi':

 honda: make moto [
    luci: "rotte"
    freni: "a tamburo"
    km: 25600
    ]

avremo un oggetto honda come il genitore moto, ma con i valori di partenza diversi.

E' possibile alterare solo alcuni valori:

 kawasaki: make moto [ km:  500]

se volete vedere le differenze:

 print guzzi
 print honda
 print kawasaki
October 16, 2009, at 01:56 PM by Massimiliano Vessi -
Added lines 505-507:

Oggetti

Gli oggetti sono come dei contenitori, molto comodi per raggruppare dati e funzioni.

October 14, 2009, at 11:46 PM by Massimiliano Vessi -
Changed line 29 from:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

to:

width=200px http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

October 14, 2009, at 11:44 PM by Massimiliano Vessi -
Changed line 29 from:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg

to:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'

October 13, 2009, at 02:14 PM by Massimiliano Vessi -
Added lines 487-504:

Metterci anche una guida

Potete anche mettere una guida ad una funzione, aggiungendo delle stringhe di spiegazione per ogni parametro, potete anche mettere una stringa iniziale di descrizione. Questa guida apparira' con il comando help:

 somma_tutti: func [
 "Una funaione per fare la somma e a media di numeri"
 a [block!] "La lista di numeri"
  /media "Fa anche la media"] [
    totale: 0
    foreach elemento a [
       totale: totale + elemento
       ]
    testo: ["La somma e':" totale]
    if media [ num_ele: length? a
       la_media: totale / num_ele
       append testo ["e la media e':" la_media]
       ]
    print remold testo
   ]
 help somma_tutti
October 13, 2009, at 02:09 PM by Massimiliano Vessi -
Changed lines 484-485 from:
  somma_tutti [ 1 2 3 4]
  somma_tutti/media [ 1 2 3 4]
to:
  somma_tutti [ 1 2 3 4 5]
  somma_tutti/media [ 1 2 3 4 5]
October 13, 2009, at 02:08 PM by Massimiliano Vessi -
Changed lines 475-476 from:
       totale: totale + 0
       testo: ["La somma e':" totale]
to:
       totale: totale + elemento
Changed lines 477-478 from:
    if media [ num_ele: lenght? a
to:
    testo: ["La somma e':" totale]
    if media [ num_ele: length? a
October 13, 2009, at 02:05 PM by Massimiliano Vessi -
Added lines 429-433:

Cosa e' una funzione?

Una funzione e' una serie di comandi da poter richiamare liberamente. Le funzioni nascono per non dover riscrivere continuamente gli stessi comandi ed anche per aggiornare un programma facilmente. Immaginate di dover cambiare il modo di operare di un programma: se fosse stata scritta 100 volte la serie di comandi, dovreste riscriverla 100 volte; ma se 100 volte viene chiamata la funzione, basterà modificare la funzione e tutte le chiamate faranno la cosa giusta.

Changed lines 445-486 from:

E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale.

to:

E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale. Esempio

 a: "cane"
 esempio: func [ primo secondo /local a] [
    a: (primo + secondo) / 2
    print a
    ]
 esempio  3 5
 print a

se lo provate noterete che la variabile a, non viene realmente alterata dalla funzione, perche' appena finisce la funzione a ritorna quella di prima.

Si puo' richiedere che i valori immessi rispettino certi criteri; ad esempio se sono interi, stringhe o altro:

 esempio: func [primo [integer! decimal!] secondo [integer! decimal!] ][
    print ( primo + secondo )]
 esempio 4 6
 esempio 4 $4

Qualunque funzione da l'ultimo valutazione come valore, oppure potere usare return; se non volete restituire nessun risultato, usate EXIT:

 esempio: func [ a b] [ a + b]
 esempio 5 3
 esempio: func [a b] [return a + b]
 esempio 5 3
 esempio: func [a b] [exit]
 esempio 5 3 

Potete anche inventarvi i vostri raffinamenti. Vediamo come funziona

 somma_tutti: func [ a [block!] /media ] [
    totale: 0
    foreach elemento a [
       totale: totale + 0
       testo: ["La somma e':" totale]
       ]
    if media [ num_ele: lenght? a
       la_media: totale / num_ele
       append testo ["e la media e':" la_media]
       ]
    print remold testo
   ]
  somma_tutti [ 1 2 3 4]
  somma_tutti/media [ 1 2 3 4]
October 13, 2009, at 02:30 AM by Massimiliano Vessi -
Changed lines 428-429 from:
to:

Creare le proprie funzioni

E' possibile creare le proprie funzioni, nel programma le funzioni devono essere lette (messe prima) del punto in cui sono chiamate. Per creare una funzione si usa il comando func:

 prima_funzione: func [] [print "Fatto"]
 prima_funzione

Le prime parentesi quadre indicano gli argomenti da passare alla funzione (di solito dei valori):

 la_media: func [primo secondo][
    risultato: (primo + secondo) / 2
    return risultato 
    ]
  print la_media 5 15

E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale.

October 12, 2009, at 03:37 AM by Massimiliano Vessi -
Changed line 414 from:
 none ;indicare il tipo di proxy altrimenti none 
to:
 none ;indicare il tipo di proxy altrimenti none (generic, socks, socks4, socks5)
Added lines 422-428:

Leggere

Basta:

 read pop://maxint:la_mia_password@pop.tiscali.it
October 12, 2009, at 03:28 AM by Massimiliano Vessi -
Added lines 419-421:

Spedire

Facile, basta usare send (e' pieno di opzioni, studiatelo bene):

 send pippo@libero.it "Ciao"
October 12, 2009, at 03:25 AM by Massimiliano Vessi -
Added lines 404-418:

Email: POP e SMTP

Per leggere la posta ci si collega ai server POP, per inviare i messaggi ci si collega ai server SMTP; questo e' lo standard e Rebol e' gia' pronto all'uso. Basta usare il comando set-net per impostare i dati dell'utente e poi il gioco e' fatto.

 set-net [
 maxint@tiscali.it  ; indirizzo email
 smtp.tiscali.it  ; server smtp
 pop.tiscali.it ; server pop
 none ; indicare il proxy di rete se c'e' altrimenti none
 none ; indicare la porta del proxy altrimenti none
 none ;indicare il tipo di proxy altrimenti none 
 "maxint" ; indicare il nome utente
 "la mia password" ; indicare la password 
 ]
October 12, 2009, at 03:17 AM by Massimiliano Vessi -
Changed line 401 from:
 write/binary  read/binary %foto.jpg
to:
 write/binary ftp://max:la_mia_password@ftp.maxvessi.net/archivio.zip read/binary %archivio.zip
October 12, 2009, at 03:15 AM by Massimiliano Vessi -
Added lines 383-403:

Lavorare con internet

Rebol e' gia' pronto per leggere da internet, provate

 a: read http://www.rebol.com
 == {<html>
 <head>
 <META NAME="Description" CONTENT="REBOL: a Web 3.0 language 
 and system based on new lightweight computing methods...

come potete vedere dall'esempio, Rebol ha letto da internet una pagina web e l'ha memorizzata nella variabile a.

FTP

Se volete caricare o leggere file dal web dovete conoscere il linguaggio FTP, che e' lo standard per internet per caricare i file su un server.

Rebol e' gia' predisposto per leggere e scrivere su un server su internet, basta che si conoscano le credenziali per accedervi (user name, password). Ecco un esempio per leggere:

 read ftp://max:la_mia_password@ftp.maxvessi.net/lista_spesa.txt

Per scrivere basta:

 write/binary  read/binary %foto.jpg

usare il raffinamento binary e' sempre consigliato quando si tratta di file che non sono testo semplice (quasi sempre).

October 08, 2009, at 06:33 PM by Massimiliano Vessi -
Changed lines 7-9 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. In parole povere potete programmare in 5 minuti! Se volete scrivermi: maxint@tiscali.it

October 08, 2009, at 06:32 PM by Massimiliano Vessi -
Added lines 46-47:

Non e' necessario installare Rebol, e' un semplice eseguibile, ma se non siete pratici di programmazione, fate i seguenti passi.

October 08, 2009, at 01:46 PM by Massimiliano Vessi -
Added lines 495-498:

Ultima modifica

Permette di sapere l'ultima modifica ad un file:

 modified? %file.txt
October 08, 2009, at 01:44 PM by Massimiliano Vessi -
Changed line 460 from:

Fa immettere username e password, potete far apparrire lo username:

to:

Fa immettere username e password, potete far apparrire lo username con il raffinamento user:

Changed lines 462-463 from:
 request-pass "Max"
to:
 request-pass/user "Max"
Added lines 465-471:

request-text

Chiede all'utente una stringa (es. parola o frase):

 request-text/title "Come ti chiami?"
October 08, 2009, at 01:40 PM by Massimiliano Vessi -
Added lines 458-464:

request-pas

Fa immettere username e password, potete far apparrire lo username:

 request-pass
 request-pass "Max"
October 08, 2009, at 01:37 PM by Massimiliano Vessi -
Added lines 453-457:

request-list

Fa scegliere un elemento da una lista:

 request-list "Esempio" [ "Mario" 23  $2]
October 08, 2009, at 01:34 PM by Massimiliano Vessi -
Added lines 443-451:

request-file

Fa scegliere all'utente un file:

 request-file
October 08, 2009, at 01:31 PM by Massimiliano Vessi -
Changed line 440 from:
 request-download http://www.rebol.com/graphics/doc-bar.gif
to:
 request-download http://www.rebol.com/
October 08, 2009, at 01:30 PM by Massimiliano Vessi -
Added lines 436-442:

request-download

Mostra all'utente lo scaricamento di un file da internet, ma l'utente puo' interrompere il download in ogni momento:

 request-download http://www.rebol.com/graphics/doc-bar.gif
October 08, 2009, at 01:22 PM by Massimiliano Vessi -
Added lines 431-435:

request-dir

Permette di far scegliere all'utente una directory:

 directory: request-dir
October 08, 2009, at 01:19 PM by Massimiliano Vessi -
Changed line 420 from:

Permette di far scegliere all'utente un colore

to:

Permette di far scegliere all'utente un colore, ovviamente restituisce una tripletta:

Added lines 424-430:

request-date

Permette di chiedere all'utente una data:

 data: request-date
October 08, 2009, at 01:16 PM by Massimiliano Vessi -
Added lines 418-424:

request-color

Permette di far scegliere all'utente un colore

 colore: request-color
October 08, 2009, at 01:15 PM by Massimiliano Vessi -
Added lines 412-417:

notify

Permette di far apparire un avviso:

 notify "Hai fatto un disastro!"
October 08, 2009, at 01:11 PM by Massimiliano Vessi -
Changed lines 396-397 from:
 confirm/with "Sei moro" ["SI" "No, sono biondo"]
to:
 confirm/with "Sei moro?" ["SI" "No, sono biondo"]
Added lines 400-410:

flash

Fa apparire una finestra di avviso e poi scompare con il comando unview. ATTENZIONE: dovete sempre usare unview per cancellarlo:

 flash "Sto contando fino a 6."
 wait 6
 unview
 f1: flash "Sto contando fino a 5."
 wait 5
 unview f1
October 08, 2009, at 01:01 PM by Massimiliano Vessi -
Added lines 390-400:

confirm

Chiede di confermare una scelta a cui rispendere YES o NO; ritorna TREU o FALSE di default. Potete impostare anche le scritte dei pulsanti con la raffinazione with:

 confirm "Sei biondo?"
 confirm/with "Sei moro" ["SI" "No, sono biondo"]
October 08, 2009, at 12:57 PM by Massimiliano Vessi -
Changed lines 385-389 from:

Manda un messagio ti attenzione

to:

Manda un messaggio di attenzione:

 alert "Stai per distruggere tutto!"
October 08, 2009, at 12:31 PM by Massimiliano Vessi -
Added lines 378-385:

Interfacce gia' pronte

In Rebol esistono delle interfacce gia' pronte per tutte quelle finestre utilizzate nella maggior parte dei programmi moderni: dagli avvisi alla richiesta dei file, alla richiesta del colore e cosi' via... Ecco un elenco:

alert

Manda un messagio ti attenzione

September 30, 2009, at 06:30 PM by Massimiliano Vessi -
Changed line 603 from:
 view layout [ title "Esempio
to:
 view layout [ title "Esempio"
Changed lines 606-607 from:
        either led1/data = true [led1/data: false]  [led/data: true]
to:
        either led1/data = true [led1/data: false]  [led1/data: true]
        show led1
September 30, 2009, at 06:27 PM by Massimiliano Vessi -
Changed lines 592-610 from:

Potete mettere delle luci

to:

Potete mettere delle luci che cambiano colore a seconda dello stato del programma:

si invoca con led:

 view layout [title "Esempio"
    led ]

di default led e' rosso, e led/data e' impostato a false. Cambiando a il valore di led a true diventa verde. led/colors: [red green] imposta i colori. Traducendo in un esempio:

 view layout [ title "Esempio
    led1: led
    button "Cambia colore" [
        either led1/data = true [led1/data: false]  [led/data: true]
        ]
     ]
September 30, 2009, at 06:21 PM by Massimiliano Vessi -
Added lines 591-592:

Led

Potete mettere delle luci

September 29, 2009, at 12:32 PM by Massimiliano Vessi -
Changed line 414 from:
	lamia password ;password di riconoscimento per il server stmp
to:
	lamia_password ;password di riconoscimento per il server stmp
Added lines 420-429:

se il testo e' su piu' righe, la prima rappresenta l'oggetto del messaggio:

 send maxint@tiscali.it {Oggetto: Prova
 Ciao bello!}

altrimenti puo' essere piu' semplice usare la raffinazione subject:

 send/subject maxint@tiscali.it "Ciao bello!"  "Oggetto: una semplice prova"
September 29, 2009, at 12:26 PM by Massimiliano Vessi -
Added lines 401-419:

Inviare e ricevere email

Rebol ha due comandi: send e read per inviare e leggere le email.

Prima di tutto dobbiamo mettere i dati di connessione con il comando set-net:

 set-net [ 
	tec@rometec.it  ;indirizzo email del mittente
	mailbus.fastweb.it ;server smtp
	pop.rometec.it ;server pop
	none ;eventuale proxy
	none ;eventuale porta del proxy
	none ;tipo di proxy tra: socks, socks4, sock5, generic
	tec@rometec.it ;user di riconoscimento per il server smtp
	lamia password ;password di riconoscimento per il server stmp
	]

Inviare

A questo punto per inviare una email potete usare send

 send maxint@tiscali.it "Ciao bello!"
September 24, 2009, at 02:01 PM by Massimiliano Vessi -
Changed line 12 from:
to:
September 24, 2009, at 02:01 PM by Massimiliano Vessi -
Added lines 36-37:

Indice Guida

September 24, 2009, at 02:00 PM by Massimiliano Vessi -
Changed lines 20-22 from:

ecco una demo:

to:

Ecco una demo:

Changed lines 25-27 from:
to:

Utilizzatori nel mondo:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg

September 23, 2009, at 01:59 PM by Massimiliano Vessi -
Deleted lines 23-25:

(:includeSite http://www.maxvessi.net/rebsite/rebolvideo.html :)

September 23, 2009, at 01:58 PM by Massimiliano Vessi -
Added lines 21-24:

(:youtube -RVhBImcEAE:)

September 23, 2009, at 01:48 PM by Massimiliano Vessi -
Changed lines 22-26 from:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

to:

(:includeSite http://www.maxvessi.net/rebsite/rebolvideo.html :)

September 23, 2009, at 01:43 PM by Massimiliano Vessi -
Changed lines 20-22 from:
to:

ecco una demo:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

September 18, 2009, at 05:40 PM by Massimiliano Vessi -
Changed line 47 from:
  • digitate install
to:
  • digitate install e premete invio
September 18, 2009, at 05:40 PM by Massimiliano Vessi -
Changed lines 45-46 from:
  • create un qualsiasi file che finisca con l'estensione .R
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il rebview.exe che avete installato
to:
  • Avviatelo
  • Lanciate la console (icona sulla sinistra)
  • digitate install
September 17, 2009, at 12:17 PM by Massimiliano Vessi -
Added lines 451-453:

Altro esempio:

 do http://www.fys.ku.dk/~niclasen/rebol/space/ngc7635.r
September 17, 2009, at 12:13 PM by Massimiliano Vessi -
Added lines 108-114:

se si vuole prendere solo un valore della coppia e' semplicissimo, basta indicale /1 o /x per il primo valore; oppure /2 o /y per il secondo.

 >> a: 640x480
 == 640x480
 >> a/1
 == 640
September 17, 2009, at 11:44 AM by Massimiliano Vessi -
Changed lines 399-401 from:

Interfacce

to:

Interfacce (VID)

Changed line 633 from:

Grafica 2D

to:

Grafica 2D (DRAW)

September 17, 2009, at 11:44 AM by Massimiliano Vessi -
Added lines 637-643:

Per mettere un disegno bisogna mettere una box con l'effetto draw dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
  ]
Deleted lines 654-658:

Per mettere un disegno bisogna mettere una box con l'effetto draw dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
  ]
September 17, 2009, at 11:42 AM by Massimiliano Vessi -
Changed lines 637-646 from:

Il sistema di riferimento parte da in ALTO A SINISTRA e prosegue verso destra (x) e verso il basso (y)

to:

Il sistema di riferimento parte da in ALTO A SINISTRA e prosegue verso destra (x) e verso il basso (y), esempio:

 view layout [ box 100x100 effect [ draw [ 
	arrow 1x0
	line 5x5  90x5
	line 5x5  5x90
	text 90x5 "X"
	text 10x80 "Y"
	]]]
September 17, 2009, at 11:32 AM by Massimiliano Vessi -
Changed line 407 from:

Negli esempi successivi useremo

to:

Esiste anche una piccola guida in inglese su http://www.rebol.com/docs/easy-vid.html

September 15, 2009, at 01:58 PM by Massimiliano Vessi -
Changed lines 135-136 from:

Codici di idcentificatione, basta anteporre il cancelletto:

to:

Codici di idcentificazione, basta anteporre il cancelletto:

Added lines 164-218:

Altri

Rebol interpreta tutto, ecco una lista di tutti i tipi che si ottiene digitando:

 help datatype!
   action!         datatype! action!
   any-block!      datatype! any-block!
   any-function!   datatype! any-function!
   any-string!     datatype! any-string!
   any-type!       datatype! any-type!
   any-word!       datatype! any-word!
   binary!         datatype! binary!
   bitset!         datatype! bitset!
   block!          datatype! block!
   char!           datatype! char!
   datatype!       datatype! datatype!
   date!           datatype! date!
   decimal!        datatype! decimal!
   email!          datatype! email!
   error!          datatype! error!
   event!          datatype! event!
   file!           datatype! file!
   function!       datatype! function!
   get-word!       datatype! get-word!
   hash!           datatype! hash!
   image!          datatype! image!
   integer!        datatype! integer!
   issue!          datatype! issue!
   library!        datatype! library!
   list!           datatype! list!
   lit-path!       datatype! lit-path!
   lit-word!       datatype! lit-word!
   logic!          datatype! logic!
   money!          datatype! money!
   native!         datatype! native!
   none!           datatype! none!
   number!         datatype! number!
   object!         datatype! object!
   op!             datatype! op!
   pair!           datatype! pair!
   paren!          datatype! paren!
   path!           datatype! path!
   port!           datatype! port!
   refinement!     datatype! refinement!
   routine!        datatype! routine!
   series!         datatype! series!
   set-path!       datatype! set-path!
   set-word!       datatype! set-word!
   string!         datatype! string!
   struct!         datatype! struct!
   symbol!         datatype! symbol!
   tag!            datatype! tag!
   time!           datatype! time!
   tuple!          datatype! tuple!
   unset!          datatype! unset!
   url!            datatype! url!
   word!           datatype! word!
September 04, 2009, at 05:25 PM by Massimiliano Vessi -
Added lines 1-2:
September 04, 2009, at 05:21 PM by Massimiliano Vessi -
Changed lines 8-9 from:

Se volete piu' informazione esiste:

to:

Se volete piu' informazioni esiste:

Deleted lines 13-18:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif REBOL italiano Visita questo gruppo

September 04, 2009, at 05:20 PM by Massimiliano Vessi -
Changed lines 10-11 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | [-- REBOL italiano Visita questo gruppo --]

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano Visita questo gruppo

September 04, 2009, at 05:20 PM by Massimiliano Vessi -
Changed lines 10-11 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano \\ Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | [-- REBOL italiano Visita questo gruppo --]

September 04, 2009, at 05:19 PM by Massimiliano Vessi -
Changed line 10 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano'Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano \\ Visita questo gruppo

September 04, 2009, at 05:19 PM by Massimiliano Vessi -
Changed lines 9-10 from:

http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | REBOL italiano'Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif | REBOL italiano'Visita questo gruppo

September 04, 2009, at 05:18 PM by Massimiliano Vessi -
Added lines 9-13:

http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | REBOL italiano'Visita questo gruppo

September 04, 2009, at 05:07 PM by Massimiliano Vessi -
Changed lines 10-12 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif \\ REBOL italiano \\ Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif REBOL italiano Visita questo gruppo

September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed line 10 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif \\ te% REBOL italiano \\ Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif \\ REBOL italiano \\ Visita questo gruppo

September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed lines 10-13 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif REBOL italiano
Visita questo gruppo

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif \\ te% REBOL italiano \\ Visita questo gruppo

September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed line 10 from:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif

September 04, 2009, at 05:04 PM by Massimiliano Vessi -
Changed line 11 from:

REBOL italiano \\

to:

REBOL italiano \\

September 04, 2009, at 05:02 PM by Massimiliano Vessi -
Changed line 11 from:

%bgcolor=white REBOL italiano

to:

REBOL italiano \\

September 04, 2009, at 05:01 PM by Massimiliano Vessi -
Changed line 11 from:

REBOL italiano

to:

%bgcolor=white REBOL italiano

Changed lines 13-17 from:

d style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr> </table> =]

to:

September 04, 2009, at 02:37 PM by Massimiliano Vessi -
Changed line 10 from:

to:

http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif

Changed lines 14-23 from:

[= <table style="background-color: #fff; padding: 5px;" cellspacing=0>

  <tr><td>
  <img src="http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif"
         height=30 width=136 alt="Google Gruppi">
  </td></tr>
  <tr><td style="padding-left: 5px;font-size: 125%">
  <b>REBOL italiano</b>
  </td></tr>
  <tr><td style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>
to:

d style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>

September 04, 2009, at 02:36 PM by Massimiliano Vessi -
Added lines 13-25:

<table style="background-color: #fff; padding: 5px;" cellspacing=0> <tr><td> <img src="http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif" height=30 width=136 alt="Google Gruppi"> </td></tr> <tr><td style="padding-left: 5px;font-size: 125%"> <b>REBOL italiano</b> </td></tr> <tr><td style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr> </table>

September 04, 2009, at 02:34 PM by Massimiliano Vessi -
Changed lines 10-12 from:
to:

REBOL italiano Visita questo gruppo

September 04, 2009, at 02:30 PM by Massimiliano Vessi -
Added lines 7-12:

Se volete piu' informazione esiste:

Added lines 14-17:
August 26, 2009, at 09:11 AM by Massimiliano Vessi -
Added lines 36-42:

Programmi per scrivere i programmi (editor)

Per scrivere un programma basta un qualunque editor di testo come il blocco note di Windows o kate, gedit su linux. I migliori comunque sono:

  • SciTE: http://www.scintilla.org/SciTE.html (Linux, Windows)
  • Crimson editor: http://www.crimsoneditor.com/ (Windows)
August 24, 2009, at 03:41 PM by Massimiliano Vessi -
Changed line 532 from:
       a/text: "BRAVO!
to:
       a/text: "BRAVO!"
Changed lines 542-543 from:
       a/text: "BRAVO!
       b/text: "BRAVO!
to:
       a/text: "BRAVO!"
       b/text: "BRAVO!"
August 24, 2009, at 03:41 PM by Massimiliano Vessi -
Added lines 522-547:

Modificare gli elementi

E' sempre possibile modificare un elemento grafico anche dopo che e' apparso sullo schermo, basta:

  • assegnargli una variabile
  • modificare una sua caratteristica
  • dire di far vedere la variazione (comando show)

per esempio il testo di un pulsante:

 view layout [ 
    a: button "clicca qui" [
       a/text: "BRAVO!
       show a
       ]
    ]

E' possibile attivare piu' oggetti:

 view layout [ 
    b: title "Esempio"
    a: button "clicca qui" [
       a/text: "BRAVO!
       b/text: "BRAVO!
       show [a b]
       ]
    ]
August 24, 2009, at 12:43 PM by Massimiliano Vessi -
Changed line 5 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it?

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it

August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: mailto:maxint@tiscali.it

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it?

August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: mailto:maxint@tiscali.it

August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it

August 24, 2009, at 12:41 PM by Massimiliano Vessi -
Changed lines 486-495 from:
to:

Se volete modificare successivamente una lista basta cambiare il valore dell'elemento data di questo oggetto, provate il seguente:

 a: [ "Acqua" "Fuoco" "Vento" "Terra"]
 view layout [ 
    bb: text-list data a 
    button "Clicca!" [ 
       bb/data: [ "Sale" "Pepe" "olio" "origano"]
       show bb
       ]
    ]
August 24, 2009, at 12:36 PM by Massimiliano Vessi -
Added lines 172-184:

Inserire dati nei blocchi

Vi sono molti modi per inserire dei dati nei blocchi:

APPEND

append inserisce i dati alla fine del blocco:

 a:  ["Buon"]
 append a "anno!"
 >> ["Buon" "anno!"]
August 24, 2009, at 12:10 PM by Massimiliano Vessi -
Changed line 464 from:

attach:textlist.jpg

to:
August 24, 2009, at 12:08 PM by Massimiliano Vessi -
Added lines 456-473:

Liste di testo

Un lista di testo e una colonna in cui mettere delle righe da cui scegliere, ecco un esempio:

 view layout [ text-list "Acqua" "Fuoco" "Vento" "Terra"]

attach:textlist.jpg

Come vedete e' molto semplice scrivere delle liste.

Ma se avete da lavorare con molti dati, è meglio usare la parola data, in modo da poter prendere i valori da altre variabili, esempio:

 a: [ "Acqua" "Fuoco" "Vento" "Terra"]
 view layout [ text-list data a ]
July 27, 2009, at 02:12 PM by Massimiliano Vessi -
Changed line 492 from:

Per la grafica 2D conviene usare un altro dialetto di Rebol il DRAW; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.

to:

Per la grafica 2D conviene usare un altro dialetto di Rebol il DRAW; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi' di solito basta. Un elenco delle funzioni di DRAW lo trovate qui: http://www.rebol.com/docs/draw-ref.html vi consiglio fortemente di andarlo a leggere.

July 27, 2009, at 02:07 PM by Massimiliano Vessi -
Changed line 269 from:

Funzioni

to:

Tutte le funzioni

July 27, 2009, at 02:07 PM by Massimiliano Vessi -
Added lines 268-275:

Funzioni

L'elenco delle funzioni pronte in Rebol lo potete trovare a questo indirizzo:

http://www.rebol.com/docs/dictionary.html

Mi limitero' ad illustrare solo le piu' utili.

July 27, 2009, at 02:04 PM by Massimiliano Vessi -
Changed line 273 from:

Con la funzione read leggiamo direttamente cio' che ci serve:

to:

Con la funzione read leggiamo direttamente cio' che ci serve (file, pagine web, ecc.):

July 24, 2009, at 04:53 PM by Massimiliano Vessi -
Changed line 5 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica2d, grafica 3D, tutto con il minimo sforzo.

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.

July 10, 2009, at 05:51 PM by Massimiliano Vessi -
Changed lines 22-24 from:

Scaricate rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPOERTATI

to:

Scaricate rebview e avviatelo, avrete a disposizione programmi, demo, e altre cose per capire se Rebol fa per voi.

LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI

July 10, 2009, at 05:50 PM by Massimiliano Vessi -
July 10, 2009, at 05:47 PM by Massimiliano Vessi -
Added lines 509-539:

Arrow (Frecce)

Le frecce si possono mettere a molti tipi di geometrie di DRAW (linee, archi, box, polilinee), sinossi:

!Argomento!Tipo!Descrizione
inizio x finecoppiaUna qualunque combinazione di 0 (nulla) 1 (punta) 2 (coda)

Esempio:

 view layout [
  box 500x500 effect [ 
   draw [
   pen yellow
   arrow 1x2  line 20x20 100x100
   pen blue
   arrow 1x2  curve 50x50 300x50 50x300 300x300
   pen green
   arrow 1x2  spline 3 30x30 200x70 150x200 70x300 80x300 200x200
   pen black
   arrow 1x2  spline closed 3 20x20 250x70 170x200 400x300 80x300 180x200
   pen white
   arrow 1x2  polygon 40x40 200x90 150x220 50x320
   pen navy
   arrow 1x2  box 400x400 330x330
   ]
  ] 
 ]
July 10, 2009, at 05:18 PM by Massimiliano Vessi -
Changed line 491 from:
  box effect [ draw [ arc 20x20 20x20x 0 360 ] ]
to:
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
Added lines 499-508:
!Argomento!Tipo!Descrizione
CentroCoppiaCentro della ellissi
RaggioCoppiaRaggio dei due assi delle ellissi
Angolo d'iniziodecimaleAngolo d'inizio dell'arco (opzionale)
Angolo finaledecimaleAngolo finale dell'arco (opzionale)
Chiusoparolaclosed Parola opzionale per disegnare anche i raggi e chiudere gli archi aperti

Esempio:

  view layout [ box effect [ draw [ arc 40x40 40x20 0 150 closed ] ] ]
July 10, 2009, at 05:07 PM by Massimiliano Vessi -
Changed lines 484-498 from:

Per la grafica 2D conviene usare un altro dialetto di Rebol il DRAW; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.

to:

Per la grafica 2D conviene usare un altro dialetto di Rebol il DRAW; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.

Il sistema di riferimento parte da in ALTO A SINISTRA e prosegue verso destra (x) e verso il basso (y)

Per mettere un disegno bisogna mettere una box con l'effetto draw dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20x 0 360 ] ]
  ]

Arc (ellissi)

Il comando 'ARC serve per fare archi, ellissi e circonferenze. Sinossi:

July 10, 2009, at 03:41 PM by Massimiliano Vessi -
Changed lines 307-310 from:
to:

Il linguaggio per le interfacce puo' essere molto semplice se si usa un dialetto di Rebol il VID (sempre gia' incluso in Rebol), il VID sono tutta una serie di comandi che permettono di scrivere velocemente delle interfacce. Volendo, pero', e' possibile andare piu' a fondo del linguaggio delle interfacce e non usare il VID.

Negli esempi successivi useremo

Changed lines 482-484 from:

to:

Grafica 2D

Per la grafica 2D conviene usare un altro dialetto di Rebol il DRAW; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.

July 10, 2009, at 03:10 PM by Massimiliano Vessi -
July 10, 2009, at 03:01 PM by Massimiliano Vessi -
Changed lines 5-7 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!. Grazie a Rebol potrete fare anche grafica2d, grafica 3D, tutto con il minimo sforzo.

Rebol significa RIVOLUZIONE.

July 10, 2009, at 03:00 PM by Massimiliano Vessi -
Changed lines 299-302 from:

GRAFICA!

In Rebol fare programmi grafici è semplicissimo e permette di ottenere risultati strabilianti in breve tempo.

to:

Interfacce

In Rebol fare programmi con interfacce grafiche è semplicissimo e permette di ottenere risultati strabilianti in breve tempo.

Changed line 477 from:

TOOL/Vidstyletree

to:

June 19, 2009, at 01:56 PM by Massimiliano Vessi -
Changed lines 403-405 from:

view layout [

to:

Ecco un esempio con un la maggior parte degli oggetti che si possono mettere in una finestra:

 view layout [
Changed line 429 from:

]

to:
 ]
June 19, 2009, at 01:54 PM by Massimiliano Vessi -
Changed line 429 from:
to:
June 19, 2009, at 01:51 PM by Massimiliano Vessi -
Added lines 400-430:

Altri esempi

view layout [

    h1 "Altri esempi:"
    box red 500x2
    text "Ci sono piu' di 40 oggetti da poter utilizzare in Rebol"
    bar: progress
    slider 200x16 [bar/data: value show bar]
    area "Scrivi qui"
    drop-down "Primo" "Secondo" "Terzo"
    text-list 60x60 "uno" "due" "tre"
    across 
    toggle "Click" "Here" 
    rotary "Click" "Again" "And Again" 
    choice "Choose" "Item 1" "Item 2" "Item 3" [alert value]
    radio radio radio
    led
    return
    arrow
    arrow left
    arrow right
    arrow down
    return
    field "oppure qui.."
    return
    image logo.gif

]

Attach:Attach:altriesempipulsanti.jpg Δ

June 19, 2009, at 01:18 PM by Massimiliano Vessi -
Added lines 21-24:

LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPOERTATI

April 27, 2009, at 09:16 PM by Massimiliano Vessi -
Changed lines 269-270 from:
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
to:
 == {<html><head><meta http-equiv="content-type" content="text/html;
 charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
Changed lines 272-273 from:
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
to:
 == {<html><head><meta http-equiv="content-type" content="text/html;
 charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
April 27, 2009, at 09:14 PM by Massimiliano Vessi -
Changed line 434 from:
    anim  rate 10 frames  [ rebologo2.gif]  ]
to:
    anim  rate 10 frames  [ ciccio.jpg  %rebologo2.gif]  ]
April 27, 2009, at 09:13 PM by Massimiliano Vessi -
Changed lines 434-435 from:
    anim  rate 10 frames  [ rebologo2.gif]  ]
to:
    anim  rate 10 frames  [ rebologo2.gif]  ]
Changed line 438 from:

TOOL/Vidstyletree

to:

TOOL/Vidstyletree

February 04, 2009, at 08:02 PM by Massimiliano Vessi -
Changed lines 436-438 from:

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.

to:

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.

TOOL/Vidstyletree

February 03, 2009, at 03:20 PM by Massimiliano Vessi -
Changed lines 429-436 from:
  view layout [ button "Esempio." [view layout [ text "Ciao"]]]
to:
  view layout [ button "Esempio." [view layout [ text "Ciao"]]]

Animazioni

Potete creare molto facilmente delle animazioni con il comando anim, basta avere delle immagini da inserire:

 view layout [   
    anim  rate 10 frames  [ rebologo2.gif]  ]

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.

February 03, 2009, at 03:16 PM by Massimiliano Vessi -
Changed lines 411-429 from:
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"
to:
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"

Aprire una nuova finestra

Per aprire una nuova finestra basta usa view/new

 Rebol [ Title: "Esempio"]
 view layout [ button "info" [ view/new layout [text "Finestra con titolo Esempio"] ]
               button "info" [ view/new/title layout [text "Finestra con titolo Info"] "Info" ]
              ]

Chiudere una finestra

Per chiudere una finestra basta usare il comando unview

 view layout [ button "info" [ view/new layout [button "Chiudi" [unview]]
                             ]
             ]

Potete anche chiudere un'altra finestra, basta mettere il nome del layout che volete chiudere dopo il comando unview.

Azioni

Ogni elemento grafico che potete usare ha la possibilità di attivare un'azione, basta mettere un paio di parentesi quadre dopo l'elemento.

  view layout [ button "Esempio." [view layout [ text "Ciao"]]]
February 03, 2009, at 03:02 PM by Massimiliano Vessi -
Added lines 406-411:

Titolo della finestra

Il titolo della finestra e' impostato da Rebol come il titolo dello script, ma potete usare la funzione view/title per impostarlo voi:

 Rebol [ Title: "Esempio"]
 view layout [ text "Il titolo della finestra e' Esempio." ]
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"
January 29, 2009, at 03:08 PM by Massimiliano Vessi -
Changed line 37 from:

[@

to:
Changed lines 40-41 from:

@]

to:
January 29, 2009, at 03:07 PM by Massimiliano Vessi -
Deleted lines 35-36:

Changed line 37 from:
to:

[@

Changed lines 40-41 from:
to:

@]

January 29, 2009, at 11:13 AM by Massimiliano Vessi -
Changed lines 7-8 from:

to:
Added lines 36-37:

January 29, 2009, at 11:12 AM by Massimiliano Vessi -
Changed lines 7-8 from:
to:

January 08, 2009, at 03:52 PM by Massimiliano Vessi -
Changed line 330 from:
to:

http://maxvex.wikispaces.com/file/view/emailclient.jpg

Changed lines 390-392 from:
to:

http://maxvex.wikispaces.com/file/view/testi.jpg

January 08, 2009, at 03:51 PM by Massimiliano Vessi -
Changed lines 398-399 from:

Per prendere del testo basta impostare una variabile con il tipo di input preferito field singola riga o area per più righe:

to:

Per prendere del testo basta impostare una variabile con il tipo di input preferito field singola riga o area per più righe:

January 08, 2009, at 03:50 PM by Massimiliano Vessi -
Changed lines 292-294 from:
to:

GRAFICA!

In Rebol fare programmi grafici è semplicissimo e permette di ottenere risultati strabilianti in breve tempo. In Rebol tutti gli elementi grafici sono contenuti in facce; ogni faccia si può immaginare come un rettangolo con tutta una serie di proprietà (colore, bordo, immagine contenuta, font dei caratteri e molto altro ancora...).

Primo esempio

 view layout [
  across
  label italic font [ color: brick ] "To:"
  tab
  inp-to: field
  return

  label italic font [ color: brick ] "Subject:"
  tab
  inp-subj: field
  return

  inp-text: area
  return

  button "Send" [
   foreach addr parse inp-to/text ",;" [
    send to-email addr
    rejoin [inp-subj/text newline inp-text/text]
   ]
   quit
  ]
 ]

Ecco cosa esce fuori:

Attach:Attach:http://maxvex.wikispaces.com/file/view/emailclient.jpg Δ

E' un programma per scrivere email. Esiste un altro linguaggio che permette cosi' tanto con cosi' poco? NO.

Da dove cominciare

Per fare programmi grafici bisogna usare la funzione view layout []. All'interno di questa funzione vanno messe le varie *facce*.

Posizione

Esistono 2 possibili posizionamenti, che possono essere anche alternati, across e below; per ogni nuova riga o colonna usare la parole return. Se non viene scritto nulla si sottointende below:

 view layout [
  across 
  text "a1"
  text "a2"
  text "a3"
  return
  text "aA"
  text "aB"
  text "aC"
  below
  text "b1"
  text "b2"
  text "b3"
  return
  text "bA"
  text "bB"
  text "bC"

Provate a vedere le differenze cambiando l'ordine delle parole.

Testi

Per far apparire del testo dentro una finestra esistono tante possibilità, come l'HTML:

 view layout [
  title "Titolo"
  text "normal text"
  h1 "Titolo 1"
  h2 "Titolo 2"
  h3 "Titolo 3"
  h4 "Titolo 4"
  h5 "Titolo 5"
  code "Codice programmi"
  banner "Banner"
  vtext "Video text"
  vh1 "Video Titolo 1"
  vh2 "Video Titolo 2"
  vh3 "Video Titolo 3"
  vh4 "Video Titolo 4"
  label "etichetta"
 ]

Attach:Attach:http://maxvex.wikispaces.com/file/view/testi.jpg Δ

Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà.

Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito field singola riga o area per più righe:

 view layout [
  campo: field
  areatesto: area
 ]
December 23, 2008, at 06:49 PM by Massimiliano Vessi -
Changed line 262 from:

Input

to:

Input / Output

Added lines 279-282:

Write

write scrive in un file i dati:

 >> write %./prova.txt  "Ciao"
December 23, 2008, at 06:29 PM by Massimiliano Vessi -
Changed lines 262-290 from:
to:

Input

Ci sono vari modi per prendere dei dati ma sono tutti estremamente semplici.

Read

Con la funzione read leggiamo direttamente cio' che ci serve:

 >> read http://www.google.it
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
 >> a: read http://www.google.it
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...

Ask

Con la funzione ask chiediamo via terminale qualcosa ad un utente:

 >> pass: ask "Nome in codice?"

Input

input è come ask ma non chiede, aspetta l'utente che digiti qualcosa e basta.

ESERCIZI

Ecco degli esercizi per capire se si è appreso i concetti fino a qui esposti:

  1. Salvare il contenuto della pagina http://www.rebol.com in un file chiamato rebol.html
  2. Scrivere un programma che chieda all'utente di fornire 3 numeri e far indicare al programma quale sia il piu' alto.
  3. Fare un programma che chieda all'utente continuamente un numero, e stampi la media di tutti i numeri inseriti fino a quel momento.
  4. Come l'esercizio precedente ma per un gruppo di numeri arbitrari, deciso volta per volta dall'utente (per 5 numeri, per 3, per 12...)
  5. Calcolare il numero di giorni dal proprio compleanno.
  6. Modifica in ROT-13 di un testo, in entrambi i sensi.
December 23, 2008, at 06:11 PM by Massimiliano Vessi -
Added lines 218-230:

Switch

Il comando switch permette di scegliere fra varie possibilità, oppure un caso che non rientra in nessuno di essi; dopo il comando si mette la variabile e poi il blocco dei vari casi della variabile e per ultimo il caso di default:

 >>a: 3
 ==3
 switch/default a [
 1 [print "uno"]
 3 [print "tre"]
 ] [print "boh"]
 ==tre
December 23, 2008, at 05:34 PM by Massimiliano Vessi -
Changed lines 8-9 from:
to:
December 19, 2008, at 04:47 PM by Massimiliano Vessi -
Deleted line 48:
December 19, 2008, at 04:22 PM by Massimiliano Vessi -
Changed line 204 from:

Forever

to:

Forever

December 19, 2008, at 04:21 PM by Massimiliano Vessi -
Changed line 17 from:
to:

(:toc:)

December 19, 2008, at 04:21 PM by Massimiliano Vessi -
Changed lines 13-16 from:
  • **GRATIS**: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
  • **Multipiattaforma**: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
  • **Compatto**: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
  • **Interpretato**: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
to:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
  • Multipiattaforma: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
  • Compatto: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
  • Interpretato: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
Changed lines 18-31 from:

=Prova= Scaricate **rebview** e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi. =Installazione= ==Windows==

  • Scaricate **rebview.exe**
  • create un qualsiasi file che finisca con l'estensione **.R**
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il **rebview.exe** che avete installato

==Linux==

  • Installate **rebview** in **/usr/bin/**
  • per avviare un programma basta lanciare **rebview nomeprogramma.r**
  • oppure aggiungere alla prima riga del programma con **#!/usr/bin/rebview**

=Tipi di dati= Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che **automaticamente** operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato. ==Denaro==

to:

Prova

Scaricate rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

Installazione

Windows

  • Scaricate rebview.exe
  • create un qualsiasi file che finisca con l'estensione .R
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il rebview.exe che avete installato

Linux

  • Installate rebview in /usr/bin/
  • per avviare un programma basta lanciare rebview nomeprogramma.r
  • oppure aggiungere alla prima riga del programma con #!/usr/bin/rebview

Tipi di dati

Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che automaticamente operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato.

Denaro

Deleted line 32:
Deleted line 34:
Changed line 36 from:
to:
Changed line 40 from:
to:
Changed line 42 from:
to:
Added lines 46-48:

Interi

Sono numeri interi:

Deleted lines 49-51:

==Interi== Sono numeri interi: code?

Changed lines 53-54 from:

code? ==Decimali==

to:

Decimali

Changed line 56 from:
to:
Changed lines 60-61 from:

code? ==Stringhe==

to:

Stringhe

Changed line 63 from:
to:
Changed lines 67-68 from:

code? ==Tempo==

to:

Tempo

Changed lines 70-75 from:

code? >> type? 15:32:01 == time! code?

==Coppie==

to:
 >> type? 15:32:01
 == time!

Coppie

Changed lines 77-82 from:

code? >> type? 640x480 == pair! code?

==Caratteri==

to:
 >> type? 640x480
 == pair!

Caratteri

Changed lines 84-90 from:

code? >> type? #"D" == char! code?

==Bytes==

to:
 >> type? #"D"
 == char!

Bytes

Changed lines 92-101 from:

code? >> type? #{42652061205245424F4C} == binary!

>> type? 64#{UkVCT0wgUm9ja3Mh} == binary!

code?

==Email==

to:
 >> type? #{42652061205245424F4C}
 == binary!
 >> type? 64#{UkVCT0wgUm9ja3Mh}
 == binary!

Email

Changed lines 102-106 from:

code? >> type? maxint@tiscali.it == email! code? ==Identificativi==

to:
 >> type? maxint@tiscali.it
 == email!

Identificativi

Changed lines 108-112 from:

code? >> type? #0000-1234-56EV-989 == issue! code? ==Tag==

to:
 >> type? #0000-1234-56EV-989
 == issue!

Tag

Changed lines 114-118 from:

code? >> type? <img src="cover.png"> == tag! code? ==Percorsi file==

to:
 >> type? <img src="cover.png">
 == tag!

Percorsi file

Changed lines 120-124 from:

code? >> type? %/c/rebol/rebol.exe == file! code? ==URL==

to:
 >> type? %/c/rebol/rebol.exe
 == file!

URL

Changed lines 126-130 from:

code? >> type? http://maxint.dynalias.org == url! code? ==Blocco==

to:
 >> type? http://maxint.dynalias.org
 == url!

Blocco

Changed line 132 from:
to:
Changed lines 135-138 from:

code?

=Variabili=

to:

Variabili

Changed lines 140-154 from:

code? >> melo: 12 == 12 >> melo: melo + 2 == 14 >> melo: "Apriti sesamo" == "Apriti sesamo" code? Per stampare una variabile basta usare il comando **print**: code? >>print melo == "Apriti sesamo" code?

=I blocchi=

to:
 >> melo: 12
 == 12
 >> melo: melo + 2
 == 14
 >> melo: "Apriti sesamo"
 == "Apriti sesamo"

Per stampare una variabile basta usare il comando print:

 >>print melo
 == "Apriti sesamo"

I blocchi

Changed lines 156-168 from:

code? >> prova: [10 [5x3 $4] "Ciccio" now/date] == [10 [5x3 $4.00] "Ciccio" now/date] code? La funzione **now/date** non è interpretata. Se si usa la funzione **reduce** viene interpretata: code? >> prova: reduce [10 [5x3 $4] "Ciccio" now/date] == [10 [5x3 $4.00] "Ciccio" 26-Nov-2008] code?

  • ATTENZIONE** Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

=Scelte e cicli= ==IF==

to:
 >> prova: [10 [5x3  $4] "Ciccio"  now/date]
 == [10 [5x3  $4.00] "Ciccio"  now/date]

La funzione now/date non è interpretata. Se si usa la funzione reduce viene interpretata:

 >> prova: reduce [10 [5x3  $4] "Ciccio"  now/date]
 == [10 [5x3 $4.00] "Ciccio" 26-Nov-2008]

ATTENZIONE Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

Scelte e cicli

IF

Changed lines 170-173 from:

code? >> a: 1 >> if a = 0 [ "zero" ] >> if a = 1 [ "uno" ]

to:
 >> a: 1
 >> if a = 0 [ "zero" ]
 >> if a = 1 [ "uno" ]
Changed lines 175-194 from:

code? ==While== La funzione **while** serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata: code? >>a: 0 >>b: 0 >> while [ a = 0 b < 10 ] [ print b b: b + 1] 0 1 2 3 4 5 6 7 8 9 == 10 code? ==loop==

to:

While

La funzione while serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata:

 >>a: 0
 >>b: 0
 >> while [ a = 0  b < 10 ] [ print b  b: b + 1]
 0
 1
 2
 3
 4
 5
 6
 7  
 8
 9
 == 10

loop

Changed lines 196-230 from:

code? >>loop 5 [print "Ciao"] Ciao Ciao Ciao Ciao Ciao code? ==Forever== Il comando **forever** ripete un ciclo finche' non si da' il comando **break**: code? >>a: 0 >>forever [ a: a + 1 print a if a = 10 [ break] ] 1 2 3 4 5 6 7 8 9 10 code? =Matematica=

  • USATE SEMPRE LE PARENTESI TONDE**, Rebol non da' precedenze agli operatori:

code? >>print 5 + 5 * 4 "SBAGLIATO" 40 == "SBAGLIATO" >> print 5 + (5 * 4) "GIUSTO" 25 == "GIUSTO" code?

to:
 >>loop 5 [print "Ciao"]
 Ciao
 Ciao
 Ciao
 Ciao
 Ciao

Forever

Il comando forever ripete un ciclo finche' non si da' il comando break:

 >>a: 0
 >>forever [ a: a + 1  print a   if a = 10 [ break] ]
 1
 2
 3
 4
 5
 6 
 7 
 8
 9
 10

Matematica

USATE SEMPRE LE PARENTESI TONDE, Rebol non da' precedenze agli operatori:

 >>print 5 + 5 * 4 "SBAGLIATO"
 40
 == "SBAGLIATO"
 >> print 5 + (5 * 4) "GIUSTO"
 25
 == "GIUSTO"
Deleted line 231:
Added lines 249-250:
December 19, 2008, at 04:18 PM by Massimiliano Vessi -
Changed lines 7-9 from:

(:toc:)

to:
December 19, 2008, at 04:17 PM by Massimiliano Vessi -
Added line 9:
Deleted line 10:
Deleted line 11:
Changed lines 13-34 from:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
  • Multipiattaforma: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
  • Compatto: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
  • Interpretato: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.

Prova

Scaricate rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

Installazione

Windows

  • Scaricate rebview.exe
  • create un qualsiasi file che finisca con l'estensione .R
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il rebview.exe che avete installato

Linux

  • Installate rebview in /usr/bin/
  • per avviare un programma basta lanciare rebview nomeprogramma.r
  • oppure aggiungere alla prima riga del programma con #!/usr/bin/rebview

Tipi di dati

Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che automaticamente operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione type? ci dice di che tipo sia il dato.

Denaro

to:
  • **GRATIS**: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
  • **Multipiattaforma**: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
  • **Compatto**: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
  • **Interpretato**: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.

toc? =Prova= Scaricate **rebview** e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi. =Installazione= ==Windows==

  • Scaricate **rebview.exe**
  • create un qualsiasi file che finisca con l'estensione **.R**
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il **rebview.exe** che avete installato

==Linux==

  • Installate **rebview** in **/usr/bin/**
  • per avviare un programma basta lanciare **rebview nomeprogramma.r**
  • oppure aggiungere alla prima riga del programma con **#!/usr/bin/rebview**

=Tipi di dati= Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che **automaticamente** operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato. ==Denaro==

Added line 33:
Added lines 35-36:
Added line 38:
Added line 42:
Added line 44:
Changed lines 48-49 from:

Interi

to:

code? ==Interi==

Added line 51:
Changed lines 54-56 from:

Decimali

to:

code? ==Decimali==

Added line 58:
Changed lines 61-63 from:

Stringhe

to:

code? ==Stringhe==

Added line 65:
Changed lines 68-70 from:

Tempo

to:

code? ==Tempo==

Changed lines 72-73 from:
 15:32:01

to:

code? >> type? 15:32:01 == time! code?

==Coppie== Per memorizzare coppie di numeri, come la risoluzione di un monitor: code? >> type? 640x480 == pair! code?

==Caratteri== Per memorizzare singole lettere, per fare cio' anteponete il cancelletto e mettete il carattere tra virgolette: code? >> type? #"D" == char! code?

==Bytes== Potete scrivere direttamente in codice macchina! Potete scrivere sia in esadecimale che in 64 bit,esempi: code? >> type? #{42652061205245424F4C} == binary!

>> type? 64#{UkVCT0wgUm9ja3Mh} == binary!

code?

==Email== Esiste anche il formato email: code? >> type? maxint@tiscali.it == email! code? ==Identificativi== Codici di idcentificatione, basta anteporre il cancelletto: code? >> type? #0000-1234-56EV-989 == issue! code? ==Tag== I tag usati in vari linguaggi, utili nella programmazioni di applicazioni per il web: code? >> type? <img src="cover.png"> == tag! code? ==Percorsi file== I percorsi dei file si inseriscono anteponendo il simbolo %: code? >> type? %/c/rebol/rebol.exe == file! code? ==URL== Gli indirizzi web: code? >> type? http://maxint.dynalias.org == url! code? ==Blocco== Il blocco è una peculiarita' di Rebol molto importante, si tratta di un elenco che permette di essere elencato di idnca con parle racchiuse da parentesi quadre: code? >> type? [mano piede naso] == block! code?

=Variabili= In Rebol tutto è una variabile, anche le parole riservate possono essere utilizzate come variabili e ridefinite. Per definire una variabile basta che cominci per una lettera e l'assegnamento si fa con i due punti, ecco un esempio: code? >> melo: 12 == 12 >> melo: melo + 2 == 14 >> melo: "Apriti sesamo" == "Apriti sesamo" code? Per stampare una variabile basta usare il comando **print**: code? >>print melo == "Apriti sesamo" code?

=I blocchi= I blocchi sono una parte importante di Rebol, i blocchi possono contenere altri blocchi. Ecco alcuni esempi: code? >> prova: [10 [5x3 $4] "Ciccio" now/date] == [10 [5x3 $4.00] "Ciccio" now/date] code? La funzione **now/date** non è interpretata. Se si usa la funzione **reduce** viene interpretata: code? >> prova: reduce [10 [5x3 $4] "Ciccio" now/date] == [10 [5x3 $4.00] "Ciccio" 26-Nov-2008] code?

  • ATTENZIONE** Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

=Scelte e cicli= ==IF== Per fare una determinata azione se una espressione è vera, ecco alcuni esempi: code? >> a: 1 >> if a = 0 [ "zero" ] >> if a = 1 [ "uno" ]

 == "uno"

code? ==While== La funzione **while** serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata: code? >>a: 0 >>b: 0 >> while [ a = 0 b < 10 ] [ print b b: b + 1] 0 1 2 3 4 5 6 7 8 9 == 10 code? ==loop== Ripete un ciclo un numero di volte: code? >>loop 5 [print "Ciao"] Ciao Ciao Ciao Ciao Ciao code? ==Forever== Il comando **forever** ripete un ciclo finche' non si da' il comando **break**: code? >>a: 0 >>forever [ a: a + 1 print a if a = 10 [ break] ] 1 2 3 4 5 6 7 8 9 10 code? =Matematica=

  • USATE SEMPRE LE PARENTESI TONDE**, Rebol non da' precedenze agli operatori:

code? >>print 5 + 5 * 4 "SBAGLIATO" 40 == "SBAGLIATO" >> print 5 + (5 * 4) "GIUSTO" 25 == "GIUSTO" code?

Rebol ha tutte le piu' importanti funzioni matematiche:

 ** POTENZA
 // RESTO
 exp  e elevato
 log-10  LOGARITMO BASE 10
 log-2   LOGARITMO BASE 2
 log-e   LOGARITMO BASE e
 square-root  RADICE QUADRATA
 absolute  valore assoluto
 negate   CAMBIA SEGNO
 min   MINIMO FRA 2 VALORI
 max   MASSIMO FRA 2 VALORI
 sine  SENO
 cosine COSENO
 tangent TANGENTE
 arcsine ARCSENO
 arccosine ARCCOSENO
 arctangent ARCTANGENTE 
November 19, 2008, at 01:53 PM by Massimiliano Vessi -
Changed line 14 from:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito per far girare tutti i programmi
to:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito http://www.rebol.com per far girare tutti i programmi
November 19, 2008, at 01:38 PM by Massimiliano Vessi -
Changed lines 20-21 from:

Scaricate 'rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

to:

Scaricate rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

November 19, 2008, at 01:38 PM by Massimiliano Vessi -
Added lines 19-21:

Prova

Scaricate 'rebview e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

November 17, 2008, at 03:27 AM by Massimiliano Vessi -
Added line 31:

L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione type? ci dice di che tipo sia il dato.

Changed lines 38-43 from:

Numeri

to:

Ma c'e' di piu', potete anche usare diverse valute usando le 3 lettere internazionali di identificazione davanti al dollaro: EUR$, CHF$

 >> type? EUR$84.87
 == money!

Interi

Changed lines 45-46 from:
 8
to:
 >> type? 8
 == integer!
Changed lines 49-50 from:
 14.8
to:
 >> type? 14.8
 == decimal!
Changed lines 53-54 from:
 "Ciao a tutti"
to:
 >> type? "Ciao a tutti"
 == string!
November 13, 2008, at 03:18 AM by Massimiliano Vessi -
Changed line 31 from:

Money

to:

Denaro

Changed line 37 from:

Interi

to:

Numeri

November 13, 2008, at 03:15 AM by Massimiliano Vessi -
Added lines 28-49:

Tipi di dati

Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che automaticamente operera' correttamente su di loro (somma, sottrazione, ecc.).

Money

Rebol ha un tipo di dato per i soldi, basta anteporre il simbolo del dollaro davanti ad una cifra decimale, esempio:

 $0.40

altro esempio:

 >> type? $9.89
 == money!

Interi

Sono numeri interi:

 8

Decimali

Sono numeri decimali, hanno il punto per dividere le unita' dai decimali:

 14.8

Stringhe

Sono variabili che contengono parole o frasi, hanno le virgolette prima e dopo:

 "Ciao a tutti"

Tempo

Per memorizzare l'ora, si usano i due punti (ore, minuti, secondi):

 15:32:01

November 13, 2008, at 02:35 AM by Massimiliano Vessi -
Changed lines 5-6 from:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!

to:

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!

(:toc:)

Changed lines 17-27 from:
  • Interpretato: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
to:
  • Interpretato: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.

Installazione

Windows

  • Scaricate rebview.exe
  • create un qualsiasi file che finisca con l'estensione .R
  • cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il rebview.exe che avete installato

Linux

  • Installate rebview in /usr/bin/
  • per avviare un programma basta lanciare rebview nomeprogramma.r
  • oppure aggiungere alla prima riga del programma con #!/usr/bin/rebview
November 13, 2008, at 02:22 AM by Massimiliano Vessi -
Changed lines 12-15 from:
to:
  • GRATIS: potete scaricare Rebol (meno di 1 MB) dal sito per far girare tutti i programmi
  • Multipiattaforma: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
  • Compatto: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
  • Interpretato: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
November 13, 2008, at 02:11 AM by Massimiliano Vessi -
Changed lines 1-3 from:

REBOL per utonti

to:

REBOL per utonti

Added lines 7-12:

Vantaggi

I vantaggi sono molteplici:

  • Linguaggio di altissimo livello: cioe' piu' vicino al modo di pensare delle persone che dei computer, piu' facile da correggere e da scrivere.
November 12, 2008, at 08:55 PM by Massimiliano Vessi -
Added lines 1-7:

REBOL per utonti

Guida iniziata il 12/11/2008

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!

HomePage

Guide

Altro

Translate:

Pubblicità:

Licenza Creative Commons
DuckDuckGo

edit SideBar

edit TopNav

Blix theme adapted by David Gilbert, powered by PmWiki