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

      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