Italian Disordine in un file INI

Discussion in 'Italian Forum' started by AlpVir, Jun 29, 2016.

  1. AlpVir

    AlpVir Well-Known Member Licensed User

    Le seguenti istruzioni
    Code:
    Comune.WriteIni("URL1","www.liceocuneo.it/~orario",File.DirRootExternal,NomeFileIni) 
        Comune.WriteIni(
    "URL2","www.itcbonelli.it/~orario",File.DirRootExternal,NomeFileIni)
        Comune.WriteIni(
    "URL3","www.nome sito della scuola/cartella per orario",File.DirRootExternal,NomeFileIni)
        Comune.WriteIni(
    "URL4","www.nome sito della scuola/cartella per orario",File.DirRootExternal,NomeFileIni)
    scrivono in un file inizi i valori desiderati. Il difetto è che non lo scrivono in ordine.
    Si può rimediare a questo disordine, non significativo dal punto di vista del funzionamento, ma sempre ... disordine è ?
    Grazie per l'attenzione.
     
  2. udg

    udg Expert Licensed User

    Ciao,

    non ricordando alcun "writeini", ho cercato nel forum ed ho trovato questo riferimento.
    Se è ciò che stai usando, noterai che di fatto utilizza una Map per memorizzare gli elementi e Map, per definizione, non mantiene l'ordine di inserimento; quindi mi spiace concludere che con tali funzioni non sarà possibile avere un file *.ini "ordinato".

    Edit: per "aggirare" il problema potresti trasformare le coppie key/value in stringhe del tipo "key=value" e registrare di conseguenza le stringhe risultanti. Ovviamente in lettura potresti effettuare l'operazione inversa (cerchi il simbolo di uguale e dividi key da value) per alimentare una Map nel caso sia l'oggetto utilizzato nel resto del programma.

    udg
     
    sirjo66 and LucaMs like this.
  3. maXim

    maXim Active Member Licensed User

    Ciao AlpVir,

    dai un'occhio alla classe fINI della libreria db2000 eXtrafunctions (disponibile per B4A, B4J e Java)... la libreria contiene altre classi di utilizzo generale, magari possono essere anche queste di tuo interesse... ;)
     
  4. AlpVir

    AlpVir Well-Known Member Licensed User

    @udg Sinceramento non ho capito il tuo suggerimento. Potresti essere più chiaro ?
    @maXim Proverò con questa tua libreria ma ho l'impressione che non fa il caso mio
     
  5. LordZenzo

    LordZenzo Well-Known Member Licensed User

    io dico.....fregatene:D:D:D:D
     
    LucaMs likes this.
  6. udg

    udg Expert Licensed User

    Ciao, dai un'occhiata alle semplici funzioni di questo post.

    Il mio suggerimento era quello di "riscriverti" le funzioni "ReadIni" e "WriteIni" utilizzando dietro le quinte un WriteString (o anche un WriteList se i dati di partenza sono in quella forma) invece del WriteMap.
    In pratica avresti:
    Code:
    Comune.MyNewWriteIni("URL1","www.liceocuneo.it/~orario",File.DirRootExternal,NomeFileIni) 
    ...
    sub MyNewWriteIni (key as string, value as string, fpath as string, f name as string)
    dim s as string
    s = key&
    "="&values  ' questo produce righe del tipo URL1=www.liceocuneo.it/~orario
    'e qui vai di WriteString
    end sub
    Personalmente lascerei il mondo così come è ora, con l'utilizzo del Map e il file *.ini "disordinato" perché ti evita di dover manipolare i dati di partenza e rende molto più semplice il loro utilizzo una volta letti dallo storage.

    udg
     
    LucaMs likes this.
  7. LucaMs

    LucaMs Expert Licensed User

    Condivido; è "solo" il tuo occhio umano che lo digerisce male.

    Male che vada, se in futuro vorrai cambiare, potrai sempre rileggerlo nella map e salvarlo in maniera diversa.
     
  8. AlpVir

    AlpVir Well-Known Member Licensed User

    Accetto il suggerimento di LucaMs (lasciare per il momento le cose come sono, visto che funzionano). Se in futuro il "disordine" fosse eccessivo potrò probabilmente rileggere il file, riordinare alfabeticamente le singole righe e risalvarlo.
     
  9. LucaMs

    LucaMs Expert Licensed User

    Veramente la constatazione ed il suggerimento erano di @udg, io li ho soltanto condivisi; ma in fondo è giusto così, che venga riconosciuto il merito a me, dato che "merito" molto più di lui :p.

    Scherzo, ovviamente (anzi, approfitto per salutarlo: HHHUUUHHH).
     
    sirjo66 and AlpVir like this.
  10. udg

    udg Expert Licensed User

    Uhhuuuhhhhh

    Condivido la condivisione ed anche che il merito possa andare a chi come te è sempre pronto ad aiutare gli altri. Senza la tua presenza, qui sarebbe un mortorio .
     
    LucaMs likes this.
  11. LucaMs

    LucaMs Expert Licensed User

    "Troooppo buono"; allora meriti due cioccolatini, anziché uno :)
     
  12. FabioRome

    FabioRome Member Licensed User

    Last edited: Jul 4, 2016
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice