+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [Inno Setup]Eliminare riga da file .INI

  1. #1
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856

    [Inno Setup]Eliminare riga da file .INI

    Buondì,
    qualcuno sa se, con InnoSetup, è possibile rimuovere completamente un'entrata da una sezione di un file INI ?
    Il regolamento del forum: la prima cosa da leggere.

  2. #2
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Ahhhhhhhhh

    Sorry, non avevo visto questa richiesta

    Invoco il tuo perdono, comunque anche se in ritardo

    Prototype:
    procedure DeleteIniEntry(const Section, Key, Filename: String);
    Description:
    Deletes the specified key from an INI file.


    Chiama questa funzione dalla sezione code e sei a posto, se ti serve altro chiedi pure e scusa l'immenso ritardo.
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  3. #3
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856
    In effetti mi meravigliava che il massimo esperto planetario di InnoSetup non avesse la soluzione.
    Stavo quasi per scriverti un PM.

    Grazie, proverò al più presto.
    Ciao.
    Il regolamento del forum: la prima cosa da leggere.

  4. #4
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    In effetti mi meravigliava che il massimo esperto planetario di InnoSetup non avesse la soluzione.
    Stavo quasi per scriverti un PM.

    Grazie, proverò al più presto.
    Ciao.
    Esagerato, comunque ti ringrazio del complimento e scusa ancora il ritardo, non sò davvero come ho fatto a non vedere questa discussione, inoltre mi hai fatto tornare in mente che servono ancora tre guide per completare il quadro di InnoSetup, devo resuscitare la voglia di farle.
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  5. #5
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856
    Non sono pratico di sintassi Pascal.
    Vorrei eliminare la chiave Tipo dalla sezione [PARMS] del file Config.ini che si trova nella cartella C:\Temp\DeleteIni; ma non ottengo alcun risultato.
    Cosa sbaglio?

    [Code]
    procedure DeleteIniEntry(const Section, Key, Filename: String);
    begin
    DeleteIniEntry('PARMS', 'Tipo', 'C:\Temp\DeleteIni\Config.ini');
    end;


    Grazie
    Il regolamento del forum: la prima cosa da leggere.

  6. #6
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Riciao allora il primo errore che commetti è in sostanza che dichiari una funzione che ha lo stesso nome di una preesistente in Inno Setup, la funzione DeleteIniEntry è come la la FileCopy in vb, per capirci quello che tu hai fatto è

    codice:
    Sub FileCopy (Source As String, Destination As String)
       FileCopy Source , Destination 
    End sub
    Capisci che non ha senso?

    Poi un ulteriore precisazione, questa funzione deve essere "chiamata" allo scatenarsi di un evento che viene rilevato nella sezione code, ad esempio se vuoi che la sezione sia cancellata alla fine del setup devi fare così:

    codice:
    [code]
    //Questa funzione intercetta il click sul tasto avanti o fine di tutte le finestre vedilo come un evento click su un array di CommandButon di vb, ovviamente CurPageID è l'index identificato tramite enumerazione o apositamente creato in casi avanzati
    function NextButtonClick(CurPageID: Integer): Boolean;
    
      //Inizio funzione
      begin
    
        //Controlliamo se la pagina in cui ci troviamo è quella finale
        If CurPageID = wpFinished then
    
          //Inizio blocco di codice che verrà eseguito se la condizione si verifica   
          begin
    
            //Elimino la chiave   
            DeleteIniEntry('PARMS', 'Tipo', 'C:\Temp\DeleteIni\Config.ini');
    
          //Fine blocco di codice che verrà eseguito se la condizione si verifica
          end
    
        //Assegno True come risultato della funzione permettendo così all'utente di proseguire
        Result :=True;
    
      //Fine funzione
      end;
    Ho messo commenti dappertutto perchè all'inizio prendere confidenza con questa metodologia di scrittura codice se si arriva da vb non è semplicissimo, lo so per esperienza, comunque volendo in caso di istruzione singola il begin end dell if si può evitare il codice drasticamente compattato sarebbe

    codice:
    [code]
    function NextButtonClick(CurPageID: Integer): Boolean;
      begin
        If CurPageID = wpFinished then
            DeleteIniEntry('PARMS', 'Tipo', 'C:\Temp\DeleteIni\Config.ini');
        Result :=True;
      end;
    Ma credo di non dover spiegare a un programmatore della tua esperienza quanto è importante all'inizio attenersi il più possibile alle regole generali per ambientarsi al linguaggio.

    Spero di essermi spiegato, se ti serve altro io sono qui, chiedi pure.
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  7. #7
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856
    Perfetto.
    Non avevo afferrato che la funzione doveva essere attivata da un evento, come del resto è logico.
    Grazie.

    Edit:
    (Ti sono debitore di reputazione. Al momento non mi è consentito dartene.)
    Ultima modifica di Brontolo; 02-12-2009 10:30 
    Il regolamento del forum: la prima cosa da leggere.

  8. #8
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Non c'è problema, felice che tu abbia risolto
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi