Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. [Risolto] Trasformare un file .txt in un array di array
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • marcocarrieri
      marcocarrieri ModSenior • ultima modifica di

      Bene e l'eventuale utilizzo di questi array?
      Tipo un ciclo per scrivere la prima riga contentie queste parole... la seconda queste.... ecc?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        mentelibera User Attivo • ultima modifica di

        Esatto, mi piacerebbe ricavare i singoli elementi disponendoli ordinatamente, e magari anche le singole dimensioni degli array annidati, per esempio il 5.o del primo post (riporto per comodità, "4" => array("a","d","e")) dovrebbe riportare 3.

        Grazie.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • marcocarrieri
          marcocarrieri ModSenior • ultima modifica di

          Ok... un po di analisi...
          E vedo ok... 🙂 ?
          E se la dimensione fosse calcolata non a priori, ma mentre splitti andrebbe bene lo stesso?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            mentelibera User Attivo • ultima modifica di

            Sì, va benissimo anche il calcolo della dimensione in un momento successivo.

            Prenditi tutto il tempo di cui hai bisogno, anch'io sto facendo delle ricerche online...

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              mentelibera User Attivo • ultima modifica di

              Non ho avuto modo di provare il codice qui sotto, ma mi è venuta in mente questa possibile soluzione almeno per trasferire i dati dal file all'array di array che consiste nel rimuovere la riga con il solo slash in fase di lettura.
              Ecco il prototipo:

              [php]
              // Legge il file e rimuove l'elemento inutile
              $contenuto_file = file_get_contents("elenco.txt");
              $contenuto_file = str_replace('/\n', '', $contenuto_file); // per file testuali Linux
              $contenuto_file = str_replace('/\r\n', '', $contenuto_file); // per file testuali Windows

              // Inserisce nell'array le righe del file e poi crea quelli annidati
              $array = explode('\n', $contenuto_file);
              $array = explode('/', $array);
              [/php]Per le altre operazioni non saprei come procedere. :gtsad:

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • marcocarrieri
                marcocarrieri ModSenior • ultima modifica di

                Una cosa cosi può andare bene come inizio?

                [php]
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml">
                <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Analisi testo</title>
                <style type="text/css">
                html,body
                {
                margin:0px;
                padding:0px;
                background:#AAD4FF;
                }
                </style>
                </head>
                <body>
                <?php
                $percorsoFile="testo.txt";
                $contenuto_file=file_get_contents($percorsoFile);
                $righe=split("\n",$contenuto_file);
                $numerorighe=count($righe);
                echo "Il file contiene $numerorighe righe.<br />";
                $numeroriga=0;
                foreach($righe as &$riga)
                {
                $numeroriga=$numeroriga+1;
                $elementi=explode("/",$riga);
                $numeroElementi=count($elementi)-1;
                echo "La riga numero $numeroriga contiene $numeroElementi elementi<br />";
                $numeroElemento=0;
                foreach($elementi as &$elementoriga)
                {
                $numeroElemento=$numeroElemento+1;
                if($numeroElemento>1)
                {
                echo "==>$elementoriga<==<br />";
                }
                }
                }
                ?>
                </body>
                </html>
                [/php]

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  mentelibera User Attivo • ultima modifica di

                  Mi sembra buono ma non ho capito una cosa, perché nei foreach(){ } metti come argomento un reference anziché il nome della variabile, in sostanza non dovrebbe essere, per esempio:

                  foreach($righe as $riga){/.../}

                  Grazie.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • marcocarrieri
                    marcocarrieri ModSenior • ultima modifica di

                    Beh, nel php sono solo dilettante, però ho visto che la sintassi data sembra essere quella.

                    php.net/manual/en/control-structures.foreach.php

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      mentelibera User Attivo • ultima modifica di

                      Generalmente ad una variabile viene esplicitato il reference nel parametro formale della funzione quando questa ne cambierà il contenuto. In questo caso non c'era alcun problema 🙂

                      Stavo facendo una prova e mi sembra che ci sia un problema poiché prende in considerazione pure la riga con il solo slash che invece non dovrebbe prendere.

                      Ho messo temporaneamente sul mio sito l'effetto a questo riferimento che poi rimuoverò:
                      w w w.cervia.name/esperimento1.php
                      il file di testo è qui:
                      w w w.cervia.name/testo.txt

                      Grazie, ciao.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • marcocarrieri
                        marcocarrieri ModSenior • ultima modifica di

                        Beh puoi sempre fare un trim dell'elemento e se quest'ultimo è uguale alla stringa vuota allora non stamparlo, non considerarlo.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          mentelibera User Attivo • ultima modifica di

                          Giusta osservazione.
                          Visto che il problema è stato risolto mi accingo a:

                          1. sostituire i link del mio post precedente con "...omissis...";
                          2. mettere "Risolto" al titolo del primo post.

                          Grazie, :gthi:

                          <addendum>
                          Contrordine, mi accorgo solo ora che non è più possibile modificare i post precedenti nonostante la buona intenzione...
                          </addendum>

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • marcocarrieri
                            marcocarrieri ModSenior • ultima modifica di

                            E' lo si può fare entro 30 minuti...
                            Ora vedo se chi ha il potere lo può fare. 🙂

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            Caricamento altri post
                            Rispondi
                            • Topic risposta
                            Effettua l'accesso per rispondere
                            • Da Vecchi a Nuovi
                            • Da Nuovi a Vecchi
                            • Più Voti