<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kicco</id>
	<title>Gambas-it.org - Wikipedia - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kicco"/>
	<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php/Speciale:Contributi/Kicco"/>
	<updated>2026-10-23T06:22:36Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Elenco_di_raster_Tile_Server_online_con_rispettive_URL&amp;diff=42751</id>
		<title>Elenco di raster Tile Server online con rispettive URL</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Elenco_di_raster_Tile_Server_online_con_rispettive_URL&amp;diff=42751"/>
		<updated>2025-11-04T18:34:02Z</updated>

		<summary type="html">&lt;p&gt;Kicco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Di seguito un elenco di alcune URL, relative a raster ''[https://it.wikipedia.org/wiki/Web_Map_Tile_Service Web Map Tile Service]'' online, pronte da usare nel 2° argomento del Metodo &amp;quot;.AddTile()&amp;quot; della Classe &amp;quot;Map&amp;quot; del Componente &amp;quot;gb.map&amp;quot;:&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//a.tile2.opencyclemap.org/transport/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//a.tile3.opencyclemap.org/landscape/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//a.tile.opentopomap.org/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//ecn.dynamic.t{s}.tiles.virtualearth.net/comp/ch/{q}?mkt=it-it&amp;amp;it=G,VE,BX,L,LA&amp;amp;shading=hill&amp;amp;n=z&amp;amp;cb=1&amp;quot;).SubDomains = [&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;]&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//khms{s}.google.it/kh/v={version}&amp;amp;src=app&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;amp;s=Galile&amp;quot;, [&amp;quot;version&amp;quot;: &amp;quot;934&amp;quot;]).SubDomains = [&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;]&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//mt0.google.com/vt/lyrs=s&amp;amp;hl=&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//mt0.google.com/vt/lyrs=m&amp;amp;hl=it&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;   (tipo: ''Cartina stradale'')&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//mt0.google.com/vt/lyrs=r&amp;amp;hl=it&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//mt0.google.com/vt/lyrs=s&amp;amp;hl=it&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;   (tipo: ''Satellite'')&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//mt0.google.com/vt/lyrs=t&amp;amp;hl=it&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;   (tipo: ''Territorio'')&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//mt0.google.com/vt/lyrs=y&amp;amp;hl=it&amp;amp;x={x}&amp;amp;y={y}&amp;amp;z={z}&amp;quot;&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//{s}.basemaps.cartocdn.com/rastertiles/voyager_labels_under/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//{s}.basemaps.cartocdn.com/rastertiles/voyager_nolabels/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;https&amp;amp;#058;//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//tile.stamen.com/terrain/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//tile.stamen.com/toner/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
* &amp;quot;http&amp;amp;#058;//tile.stamen.com/watercolor/{z}/{x}/{y}.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Siti web ove poter trovare altre URL di Map Server====&lt;br /&gt;
* https://cran.r-project.org/web/packages/leaflet.providers/readme/README.html&lt;br /&gt;
* http://geo.inge.org.uk/gme_maps.htm&lt;br /&gt;
* https://leaflet-extras.github.io/leaflet-providers/preview/&lt;br /&gt;
* https://wiki.openstreetmap.org/wiki/Tile_servers&lt;br /&gt;
* https://www.trailnotes.org/FetchMap/TileServeSource.html&lt;/div&gt;</summary>
		<author><name>Kicco</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Attivare_e_registrare_informazioni_un_singolo_file_di_log&amp;diff=27814</id>
		<title>Attivare e registrare informazioni un singolo file di log</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Attivare_e_registrare_informazioni_un_singolo_file_di_log&amp;diff=27814"/>
		<updated>2021-01-29T08:58:04Z</updated>

		<summary type="html">&lt;p&gt;Kicco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(''Questa pagina è stata redatta da [https://www.gambas-it.org/smf/index.php?action=profile;u=1089 kicco], membro del forum gambas-it.org'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per creare log di registrazione delle attività è necessario attivare il componente '''gb.logging'''.&lt;br /&gt;
&lt;br /&gt;
Si possono creare così molti oggetti logger che permettono di ottenere la gestione di differenti log, anche contemporaneamente.&lt;br /&gt;
&lt;br /&gt;
In questo semplice esempio si istanzierà un unico log nel quale verranno registrati i messaggi associati ad un livello di informazione.&lt;br /&gt;
&lt;br /&gt;
Creazione del log e sua attivazione:&lt;br /&gt;
 Public mylogger As Logger&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)                 ' istanzia il log&lt;br /&gt;
 mylogger.Begin()                                               ' lo attiva&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
;I parametri di inizializzazione (4, Null, &amp;quot;~/LOG/Logger.txt&amp;quot;) sono:&lt;br /&gt;
livello, intestazione della riga , path e nome del log. &lt;br /&gt;
&lt;br /&gt;
;I livelli possono essere:&lt;br /&gt;
*CRITICAL = 0&lt;br /&gt;
*ERROR = 1&lt;br /&gt;
*WARNING = 2&lt;br /&gt;
*INFO = 3&lt;br /&gt;
*DEBUG = 4&lt;br /&gt;
:ed hanno ordine prioritario, se uso 4, tutti i messaggi di valore inferiore verranno registrati, viceversa se userò 2, verranno registrati solo i messaggi Warning, Error e Critical (2,1 e 0).&lt;br /&gt;
:Questo può essere utile durante le fasi di sviluppo e debug per filtrare man mano i messaggi.&lt;br /&gt;
&lt;br /&gt;
;Intestazione della riga:&lt;br /&gt;
:Ogni registrazione è intestabile con differenti informazioni. Usando NULL, si accetta il formato standard.&lt;br /&gt;
:Il formato standard è ($now),($levelname),($callLocation)e ($Message).&lt;br /&gt;
:I criteri di formattazione si trovano nell'help della classe Logger.Format (vedi wiki).&lt;br /&gt;
&lt;br /&gt;
;Path e nome del file.&lt;br /&gt;
:È l'indicazione completa della posizione del file di log.&lt;br /&gt;
&lt;br /&gt;
Per registrare un messaggio nel log si può usare questa sintassi, ma si vedrà che nel codice: ''Esempio di gestione di un log semplice'' proposto più sotto, ne esistono altri analoghi.&lt;br /&gt;
 mylogger.Log(&amp;quot;sono passato di qua&amp;quot;, 4)&lt;br /&gt;
È necessario porre attenzione al livello perché, se il livello della registrazione è maggiore di quello usato per la dichiarazione del log, il messaggio non verrà registrato.&lt;br /&gt;
&lt;br /&gt;
Un interessante classe del componente gb.logging è '''LogRotator''', che permette la rotazione dei file di log provvedendo ad un rename automatico.&lt;br /&gt;
 LogRotator.Rotate(&amp;quot;~/Logger.txt&amp;quot;)&lt;br /&gt;
La rotazione del log consiste nella numerazione automatica del nome del file, In quseto caso dopo la rotazione il file ''Logger.txt'' diventa ''Logger.0.txt'' e successivamente ''Logger.1.txt''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un'altra interessante classe è '''LogRotator.should''' che è in grado di verificare se un file di log ha superato una data dimensione.&lt;br /&gt;
 Dim bol As Boolean&lt;br /&gt;
 &lt;br /&gt;
 bol = LogRotator.shouldRotate(&amp;quot;~/LOG/Logger.txt&amp;quot;, 1000)&lt;br /&gt;
Verifica se un file di log ha superato una certa dimensione. In questo caso la dimensione è 1000 cioè 1kB che, se viene superata commuta il valore della variabile bol in TRUE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esempio di gestione di un log semplice&lt;br /&gt;
 Public mylogger As Logger&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)          ' Istanzia il log&lt;br /&gt;
 mylogger.Begin()                                        ' Lo attiva&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim bol As Boolean&lt;br /&gt;
 &lt;br /&gt;
 mylogger.Log(&amp;quot;testo info&amp;quot;, Logger.Info)                 ' Tre modi differenti di scrivere il messaggio di log&lt;br /&gt;
 mylogger(&amp;quot;testo warning&amp;quot;, Logger.warning)&lt;br /&gt;
 mylogger.Log(&amp;quot;sono passato di qua&amp;quot;, 4)&lt;br /&gt;
 &lt;br /&gt;
 bol = LogRotator.shouldRotate(&amp;quot;~/Logger.txt&amp;quot;, 1000)     'Controlla lo stato della variabile booleana&lt;br /&gt;
 If bol = True Then                                      ' Verifica se è cambiato&lt;br /&gt;
   Print &amp;quot;SUPERATO&amp;quot;                                        ' Se è cambiato scrive in consolle&lt;br /&gt;
   LogRotator.Rotate(&amp;quot;~/Logger.txt&amp;quot;)                       ' Se è cambiato ruota il log&lt;br /&gt;
 Else&lt;br /&gt;
   Print &amp;quot;NON SUPERATO&amp;quot;                                    ' Se non è cambiato scrive in consolle&lt;br /&gt;
 Endif&lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)          ' Istanzia un nuovo log&lt;br /&gt;
 mylogger.Begin()                                        ' Attiva il nuovo log&lt;br /&gt;
 &lt;br /&gt;
 End&lt;/div&gt;</summary>
		<author><name>Kicco</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Attivare_e_registrare_informazioni_un_singolo_file_di_log&amp;diff=27813</id>
		<title>Attivare e registrare informazioni un singolo file di log</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Attivare_e_registrare_informazioni_un_singolo_file_di_log&amp;diff=27813"/>
		<updated>2021-01-29T08:55:40Z</updated>

		<summary type="html">&lt;p&gt;Kicco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(''Questa pagina è stata redatta da [https://www.gambas-it.org/smf/index.php?action=profile;u=1089 kicco], membro del forum gambas-it.org'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per creare log di registrazione delle attività è necessario attivare il componente '''gb.logging'''.&lt;br /&gt;
&lt;br /&gt;
Si possono creare così molti oggetti logger che permettono di ottenere la gestione di differenti log, anche contemporaneamente.&lt;br /&gt;
&lt;br /&gt;
In questo semplice esempio si istanzierà un unico log nel quale verranno registrati i messaggi associati ad un livello di informazione.&lt;br /&gt;
&lt;br /&gt;
Creazione del log e sua attivazione:&lt;br /&gt;
 Public mylogger As Logger&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)                 ' istanzia il log&lt;br /&gt;
 mylogger.Begin()                                               ' lo attiva&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
;I parametri di inizializzazione (4, Null, &amp;quot;~/LOG/Logger.txt&amp;quot;) sono:&lt;br /&gt;
livello, intestazione della riga , path e nome del log. &lt;br /&gt;
&lt;br /&gt;
;I livelli possono essere:&lt;br /&gt;
*CRITICAL = 0&lt;br /&gt;
*ERROR = 1&lt;br /&gt;
*WARNING = 2&lt;br /&gt;
*INFO = 3&lt;br /&gt;
*DEBUG = 4&lt;br /&gt;
:ed hanno ordine prioritario, se uso 4, tutti i messaggi di valore inferiore verranno registrati, viceversa se userò 2, verranno registrati solo i messaggi Warning, Error e Critical (2,1 e 0).&lt;br /&gt;
:Questo può essere utile durante le fasi di sviluppo e debug per filtrare man mano i messaggi.&lt;br /&gt;
&lt;br /&gt;
;Intestazione della riga:&lt;br /&gt;
:Ogni registrazione è intestabile con differenti informazioni. Usando NULL, si accetta il formato standard.&lt;br /&gt;
:Il formato standard è ($now),($levelname),($callLocation)e ($Message).&lt;br /&gt;
:I criteri di formattazione si trovano nell'help della classe Logger.Format (vedi wiki).&lt;br /&gt;
&lt;br /&gt;
;Path e nome del file.&lt;br /&gt;
:È l'indicazione completa della posizione del file di log.&lt;br /&gt;
&lt;br /&gt;
Per registrare un messaggio nel log si può usare questa sintassi, ma si vedrà che nel codice: ''Esempio di gestione di un log semplice'' proposto più sotto, ne esistono altri analoghi.&lt;br /&gt;
 mylogger.Log(&amp;quot;sono passato di qua&amp;quot;, 4)&lt;br /&gt;
È necessario porre attenzione al livello perché, se il livello della registrazione è maggiore di quello usato per la dichiarazione del log, il messaggio non verrà registrato.&lt;br /&gt;
&lt;br /&gt;
Un interessante classe del componente gb.logging è '''LogRotator''', che permette la rotazione dei file di log provvedendo ad un rename automatico.&lt;br /&gt;
 LogRotator.Rotate(&amp;quot;~/Logger.txt&amp;quot;)&lt;br /&gt;
La rotazione del log consiste nella numerazione automatica del nome del file, In quseto caso dopo la rotazione il file ''Logger.txt'' diventa ''Logger.0.txt'' e successivamente ''Logger.1.txt''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un'altra interessante classe è '''LogRotator.should''' che è in grado di verificare se un file di log ha superato una data dimensione.&lt;br /&gt;
 Dim bol As Boolean&lt;br /&gt;
 &lt;br /&gt;
 bol = LogRotator.shouldRotate(&amp;quot;~/LOG/Logger.txt&amp;quot;, 1000)&lt;br /&gt;
Verifica se un file di log a superato una certa dimensione. In questo caso la dimensione è 1000 cioè 1kB che, se viene superata commuta il valore della variabile bol in TRUE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esempio di gestione di un log semplice&lt;br /&gt;
 Public mylogger As Logger&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)          ' Istanzia il log&lt;br /&gt;
 mylogger.Begin()                                        ' Lo attiva&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim bol As Boolean&lt;br /&gt;
 &lt;br /&gt;
 mylogger.Log(&amp;quot;testo info&amp;quot;, Logger.Info)                 ' Tre modi differenti di scrivere il messaggio di log&lt;br /&gt;
 mylogger(&amp;quot;testo warning&amp;quot;, Logger.warning)&lt;br /&gt;
 mylogger.Log(&amp;quot;sono passato di qua&amp;quot;, 4)&lt;br /&gt;
 &lt;br /&gt;
 bol = LogRotator.shouldRotate(&amp;quot;~/Logger.txt&amp;quot;, 1000)     'Controlla lo stato della variabile booleana&lt;br /&gt;
 If bol = True Then                                      ' Verifica se è cambiato&lt;br /&gt;
   Print &amp;quot;SUPERATO&amp;quot;                                        ' Se è cambiato scrive in consolle&lt;br /&gt;
   LogRotator.Rotate(&amp;quot;~/Logger.txt&amp;quot;)                       ' Se è cambiato ruota il log&lt;br /&gt;
 Else&lt;br /&gt;
   Print &amp;quot;NON SUPERATO&amp;quot;                                    ' Se non è cambiato scrive in consolle&lt;br /&gt;
 Endif&lt;br /&gt;
 mylogger = New Logger(4, Null, &amp;quot;~/Logger.txt&amp;quot;)          ' Istanzia un nuovo log&lt;br /&gt;
 mylogger.Begin()                                        ' Attiva il nuovo log&lt;br /&gt;
 &lt;br /&gt;
 End&lt;/div&gt;</summary>
		<author><name>Kicco</name></author>
	</entry>
</feed>