Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-11-2009, 19:13   #21
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
forse ho capito..
TextBox1.Text = INI.GetGruppoByNome("Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore
Esatto, io pensavo a qualcosa di più raffinato, ma sì, il concetto è quello !
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 19:58   #22
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Esatto, io pensavo a qualcosa di più raffinato, ma sì, il concetto è quello !

Ciao MarcoGG,

scusami se approfitto della tua gentilezza, come posso modificare la tua classe per fare in modo ad esempio di creare un blocco ed inserirlo tra uno e l'altro oppure aggiungere un campo in una determinata posizione ecc..?

grazie per le dritte...
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 20:44   #23
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Comodo? Spaziale!!!

grasie, provo poi faccio sapere :-)
__________________
D@x

Ultima modifica di daxdaxdax : 04-11-2009 alle 20:53.
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 20:55   #24
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da U235 Guarda i messaggi
Ciao MarcoGG,

scusami se approfitto della tua gentilezza, come posso modificare la tua classe per fare in modo ad esempio di creare un blocco ed inserirlo tra uno e l'altro oppure aggiungere un campo in una determinata posizione ecc..?

grazie per le dritte...
FileIni eredita da List(Of), pertanto è possibile usare tutti i metodi generici di aggiunta alla List ( .Add, .Insert, ecc... ).

Se volessi invece un metodo che, dato in input il nome di un Gruppo già presente nell'INI, inserisca un nuovo Gruppo subito dopo, ad esempio puoi aggiungere alla Classe FileIni il metodo :

Codice:
    Public Sub AddGruppoDopo(ByVal nomeGruppo As String, ByVal nomeNuovoGruppo As String)

        For Each G As Gruppo In Me
            If G.Nome = nomeGruppo Then
                Me.Insert(Me.IndexOf(G) + 1, New Gruppo(nomeNuovoGruppo))
                Exit For
            End If
        Next

    End Sub
Da usarsi così :

Codice:
        'Inserisci subito dopo "[XGame.xDeathMatch]" il nuovo Gruppo "[NomeNuovoGruppo]" 
        INI.AddGruppoDopo("[XGame.xDeathMatch]", "[NomeNuovoGruppo]")

        INI.Salva()
Ovviamente metodi buttati giù così, senza alcun controllo errori. A voi il piacere di implementare...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 21:16   #25
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
FileIni eredita da List(Of), pertanto è possibile usare tutti i metodi generici di aggiunta alla List ( .Add, .Insert, ecc... ).

Se volessi invece un metodo che, dato in input il nome di un Gruppo già presente nell'INI, inserisca un nuovo Gruppo subito dopo, ad esempio puoi aggiungere alla Classe FileIni il metodo :

Codice:
    Public Sub AddGruppoDopo(ByVal nomeGruppo As String, ByVal nomeNuovoGruppo As String)

        For Each G As Gruppo In Me
            If G.Nome = nomeGruppo Then
                Me.Insert(Me.IndexOf(G) + 1, New Gruppo(nomeNuovoGruppo))
                Exit For
            End If
        Next

    End Sub
Da usarsi così :

Codice:
        'Inserisci subito dopo "[XGame.xDeathMatch]" il nuovo Gruppo "[NomeNuovoGruppo]" 
        INI.AddGruppoDopo("[XGame.xDeathMatch]", "[NomeNuovoGruppo]")

        INI.Salva()
Ovviamente metodi buttati giù così, senza alcun controllo errori. A voi il piacere di implementare...
grazie, gentilissimo.

Puo' sempre servire in vb anche se in genere programmo in c#.

ciao.
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 22:38   #26
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Esatto, io pensavo a qualcosa di più raffinato, ma sì, il concetto è quello !
Ok funziona tutto alla grande!!!

ancora una domandina..

In che modo posso modificare la sub carica in modo che se le viene chiesto un parametro che non esiste, non dia errore?
__________________
D@x
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 23:57   #27
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
Ok funziona tutto alla grande!!!

ancora una domandina..

In che modo posso modificare la sub carica in modo che se le viene chiesto un parametro che non esiste, non dia errore?
Beh, dipende da cosa si desidera che succeda se m_nomeFileCompleto non corrisponde ad un file ini realmente esistente.
La cosa più semplice è uscire dal metodo Carica(), ossia come prima linea di codice nel metodo inserire :

Codice:
If System.IO.File.Exists(m_nomeFileCompleto) = False Then Exit Sub
in questo caso l'oggetto INI, dopo l'esecuzione di Carica() sarà una lista vuota :

Codice:
        Dim INI As New FileIni( percorsoErrato )
        INI.Carica()

        If INI.Count = 0 Then MsgBox("vuoto")
E poi bisognerebbe gestire le eccezioni dovute al caricamento di un file ini non formattato correttamente. Questa classe è pensata per un file Ini, diciamo "ben formato", se così si può dire, ossia che rispetta la struttura :

[Gruppo1]
Chiave1=valore
Chiave2=valore
...
ChiaveN=valore
< spazio >
[Gruppo2]
Chiave1=valore
Chiave2=valore
...
ChiaveN=valore

ecc...

Bisogna aver chiaro quali errori possono verificarsi, e quali azioni intraprendere caso per caso...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 00:21   #28
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Capito...

sai che funziona tutto a parte la funzione salva?
come sono ignorante... cosa manca secondo te?

(Comunque aggiungere letture di stringhe in questo modo è sicuramente meno laborioso...goood)
Codice:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ' SALVATAGGIO PARAMETRI SU FILE SCELTO
        Dim INI As New FileIni(Label17.Text)
        INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text
        ProgressBar1.Value += 1
        INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("AdminName").Valore = NomeAmmin.Text
        ProgressBar1.Value += 1
        INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("AdminEmail").Valore = AmminMail.Text
        ProgressBar1.Value += 1 
ecc...
__________________
D@x
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 00:36   #29
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Come "a parte la funzione Salva" ?
Da me funziona benissimo. Che problema c'è ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 17:43   #30
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Object reference not set to an instance of an object.
__________________
D@x
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 18:29   #31
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
Object reference not set to an instance of an object.
Eh, vabbeh, , ma facendo COSA ti da quell'errore ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 21:17   #32
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Hihihihi scusa.... hai ragione...
Allora, ho scritto nella sub del mio pulsante "LEGGI"
Codice:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim INI As New FileIni(Label17.Text)
        INI.Carica()
        ProgressBar1.Value += 1
        Nomeserver.Text = INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore 
ecc..
Poi, ho fatto un pulsante "scrivi" che (se ho capito bene il concetto) prende invece i valori delle varie textbox per ricompilare l'ormai famoso INI e salvarlo...
Codice:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ' SALVATAGGIO PARAMETRI SU FILE SCELTO
        Dim INI As New FileIni(Label17.Text)
        INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text
        ProgressBar1.Value += 1
ecc..
Il LEGGI funziona da dio ma SCRIVI mi si ferma evidenziandomi :
INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text

Ora, non capisco che errore ci sia dato che non cè alcun problema apparente..
Quando avrò compreso appieno le tue classi sarò mooolto felice
__________________
D@x
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 23:08   #33
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
ciao

sei certo che nel file INI ci siano esattamente quelle voci ([Engine.GameReplicationInfo] e ServerName)?

se sbagli anche solo un carattere ti da quelgenere di errore mi sa...
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 23:25   #34
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Ciao U235

si, sono abbastanza sicuro che esistano...
In fase di lettura legge il valore, in fase di scrittura\salvataggio, no... mah..
Io nel frattempo ravano ancora un po per capire...
__________________
D@x

Ultima modifica di daxdaxdax : 05-11-2009 alle 23:53.
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 23:37   #35
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
Hihihihi scusa.... hai ragione...
Allora, ho scritto nella sub del mio pulsante "LEGGI"
Codice:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim INI As New FileIni(Label17.Text)
        INI.Carica()
        ProgressBar1.Value += 1
        Nomeserver.Text = INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore 
ecc..
Poi, ho fatto un pulsante "scrivi" che (se ho capito bene il concetto) prende invece i valori delle varie textbox per ricompilare l'ormai famoso INI e salvarlo...
Codice:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ' SALVATAGGIO PARAMETRI SU FILE SCELTO
        Dim INI As New FileIni(Label17.Text)
        INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text
        ProgressBar1.Value += 1
ecc..
Il LEGGI funziona da dio ma SCRIVI mi si ferma evidenziandomi :
INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text

Ora, non capisco che errore ci sia dato che non cè alcun problema apparente..
Quando avrò compreso appieno le tue classi sarò mooolto felice
Ora che ti sei spiegato chiaro su COSA fai e su COME lo fai, direi che il problema è lampante. Fai attenzione :

1. Istanzi un oggetto della classe FileIni, e poi con Carica() lo "riempi" con i gruppi e le chiavi presenti. Perfetto.

2. Poi, per salvare, fai questo :

Codice:
' SALVATAGGIO PARAMETRI SU FILE SCELTO
Dim INI As New FileIni(Label17.Text)
INI.GetGruppoByNome("[Engine.GameReplicationInfo]").GetChiaveByNome("ServerName").Valore = Nomeserver.Text
Istanzi un altro oggetto da FileINI, NON fai il Carica(), e cerchi un Gruppo, e una Chiave che ovviamente non possono esistere, perchè ti ritrovi una List vuota !
L'inizializzazione dell'oggetto INI deve avvenire una volta sola ed essere visibile dalle ruotine di lettura e scrittura. Il che significa che la dichiarazione dell'oggetto INI di tipo FileIni deve avvenire a livello di Form, o anche a livello di Modulo o classe statica...
Quando INI è caricato con Carica(), non è più necessario istanziare un altro oggetto FileIni per fare il Salva().
Salva() va fatto sulla stessa istanza da cui hai eseguito il Carica().

Credo di essermi spiegato.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2009, 00:02   #36
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Sempre disponibile, grazie.
Domani cerco di capire dove sbaglio e ti dico..
Siete i miei due maestri


Devo usare "shared"?
..consigliatemi un libro per mozzi come me per imparare queste cose..
__________________
D@x

Ultima modifica di daxdaxdax : 06-11-2009 alle 22:15.
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2009, 11:30   #37
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
Devo usare "shared"?
Shared è lo "Static" di VB.NET.
Dipende... Usarlo per cosa ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2009, 11:37   #38
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Per fare la classe statica che dicevi... Per far vedere alle ruotine di lettura e scrittura "dim INI As New FileIni(Label17.Text)"
__________________
D@x

Ultima modifica di daxdaxdax : 07-11-2009 alle 11:49.
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2009, 11:49   #39
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da daxdaxdax Guarda i messaggi
Per fare la classe statica che dicevi...
Un Modulo VB.NET è già di per sè una classe statica. Non hai nessun bisogno di usare Shared. Basta :

Codice:
Module ModuloINI

    Public FI As FileIni

End Module
Quando vuoi caricare :
Codice:
FI = New FileIni ( percorso )
FI.Carica()
Quando vuoi salvare :
Codice:
FI.Salva()
Quando te ne vuoi liberare :
Codice:
FI.Dispose()
A patto di aver implementato IDisposable nella classe FileIni.

MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2009, 17:52   #40
daxdaxdax
Member
 
L'Avatar di daxdaxdax
 
Iscritto dal: Aug 2009
Messaggi: 168
Io non ci riesco...
se posto tutta la mia form5 hai voglia di leggerla?
__________________
D@x
daxdaxdax è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Giorgia Meloni 'una di noi': Palazzo Chi...
Airbus richiama oltre 6.000 A320: rischi...
Tra open hybrid cloud e sovranità...
Il nuovo SSD Samsung è fatto con ...
Russia contro WhatsApp: il piano per spe...
Battlefield 6, oltre 2,39 milioni di ten...
La Cina spiazza tutti: nuovo chip per l'...
Nexperia, altro che caso chiuso: il caos...
Nuova tecnologia AMD FSR Ray Regeneratio...
Motorola Edge 60 Neo e Motorola Moto Wat...
Weekend e offerte Amazon Black Friday ag...
Il tuo indirizzo IP è compromesso...
Eureka J15 Evo Ultra in super sconto: or...
Robot aspirapolvere in super sconto per ...
Black Friday Amazon: le migliori occasio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v