Input File e Array

di il
8 risposte

Input File e Array

Buongiorno a tutti.

Premetto che sono un neofita di VB.net (Uso VS 2017) completamente autodidatta con un'infarinatura in C++ (quest'ultima informazione vi servirà dopo)

Ho cercato a lungo su forum italiani e stranieri, ho guardato decine di video su youtube ma nessuno spiega o mostra come fare queste cose, chiedere direttamente a voi che siete esperti è la mia ultima spiaggia. Aiutatami per favore

Vorrei capire:
  • Come aprire un file .txt
  • Come aprire un foglio elettronico di Excel
  • Come aprire un foglio elettronico di LibreOffice
Questi file contengono dati nella forma:

Titolo1 Genere1 Durata1 Nazionalità1
Titolo2 Genere2 Durata2 Nazionalità2
...

Vorrei sapere:
  • Come estrarre questi dati e inserirli in array monodimensionali.

So che posso dichiarare un array scrivendo:
Dim titolo(n) As String
Il mio obiettivo è quello di creare un programma che chiede all'utente le caratteristiche del film cercate (Genere, Durata massima, Nazione di produzione) e confrontarle con i dati presi dal file di testo per poi restituire tutti e i soli film con le caratteristiche cercate.

Ho già scritto questo programma in C++, vi faccio vedere
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()

{
/*Dichiaro tanti array monodimensionali quante 
sono le colonne del mio file di testo .txt.
Il numero 110 è arbitrario.*/
    string film[110];
    string genere[110];
    string nazione[110];                    
    string sesso[110];
    double durata[110];
    int nfilm = 0; //Inizializzo il contatore per scorrere gli array

/*Dichiaro la variabile di flusso di tipo Input e le
variabili che andranno a contenere gli elementi chiesti
dall'utente scritti da tastiera*/
    ifstream indata;
    string generechiesto;
    string nazionechiesta;
    string sessochiesto;
    double duratachiesta;

/*In ordine:
-Prompt per l'utente
-Input da tastiera, il programma salva la
caratteristica chiesta dall'utente nella variabile*/
    cout << "Che genere cerchi?" << endl; 
    cin >> generechiesto;
    cout << endl;

    cout << "Nazionalita'? (Italiano, Straniero)" << endl;
    cin >> nazionechiesta;
    cout << endl;

    cout << "Protagonista? (Uomo, Donna, Entrambi)" << endl;
    cin >> sessochiesto;
    cout << endl;

    cout << "Durata massima?" << endl;
    cin >> duratachiesta;
    cout << endl;
    
    //Apertura del file
    indata.open("Lettura.txt");
    
    //Inizio del ciclo while.
    while (indata && nfilm <= 110)
    {
/*Indata opera un'estrazione dal file, legge da sinistra verso destra
e salva in ordine tutti gli elementi della prima riga (indice 0)*/
        indata >> film[nfilm] >> genere[nfilm]  >> nazione[nfilm] >> sesso[nfilm] >> durata[nfilm];
        
/*Qui si opera il confronto tra la caratteristica chiesta
e gli elementi trovati nella prima riga*. Se c'è corrispondenza
il titolo di quella riga viene stampato a schermo*/
        if ( genere[nfilm] == generechiesto && nazione[nfilm] == nazionechiesta && sesso[nfilm] == sessochiesto && durata[nfilm] < duratachiesta)
                cout << film[nfilm] << endl;
    }
    
//Chiusura file
    indata.close();
   
   return 0;
}
Vorrei fare esattamente la stessa cosa in VB.net. Le caratteristiche scelte verrebbero selezionate da alcuni menù a tendina, ma per questa parte penso di potermela cavare agilmente.

Perdonatemi: vi sto chiedendo cose basilari, ho fatto riferimento ad un altro linguaggio e forse sono stato fin troppo attento a spiegare il banale funzionamento del programma in C++. Potete aiutarmi per favore?

8 Risposte

  • Re: Input File e Array

    Permettimi l'opinione personale : se conosci già un pò c++ perche utilizzi vb.net e non c# ?

    >>>Come aprire un file .txt
    cerca su google "vb.net aprire un file di testo"
    >>>Come aprire un foglio elettronico di Excel
    cerca su google vb.net aprire file excel
    >>>Come aprire un foglio elettronico di LibreOffice
    devi usare il formato ""proprietario"" di LibreOffice o puoi salvare questo file in formato excel usando libreoffice?

    >>>Come estrarre questi dati e inserirli in array monodimensionali.
    leggi i file e inserisci i dati dentro degli array...

    potresti pensare di usare un db dove salvare i dati e fare ricerche ,ad esempio SqLite,quest'ultimo db è un "Zero-Configuration Database",lo trovi qua https://www.sqlite.org/index.htm
  • Re: Input File e Array

    https://support.microsoft.com/it-it/help/302309/how-to-read-a-text-file-by-using-system-io-in-visual-basic-2005-or-in

    https://docs.microsoft.com/it-it/dotnet/visual-basic/developing-apps/programming/drives-directories-files/how-to-read-from-text-files

    Concordo anche io con gian82 ... perché non usi C# ?
  • Re: Input File e Array

    Inoltre se fai le ricerche in inglese hai molte più probabilità di trovare risposte, per esempio:
    vb.net text file to array
  • Re: Input File e Array

    @gian: speravo in una risposta meno improntata al "Tieni e arrangiati" ma mi accontento. L'aspetto positivo è che mi hai spronato a fare ricerche più accurate. In caso tornerò di nuovo qui. Grazie per la risposta per il momento.

    @oregon: perché recentemente ho avuto un'infarinatura fortuita in VB.net e qualche giorno fa ho scritto un paio di programmi molto semplici. Provo a vedere se C# si sposa di più con quello che ho in mente di fare.

    @patel: grazie, proverò così da ora in poi.

    Sto solo avendo difficoltà a cercare come salvare ogni elemento di una riga in un array. Questo potreste spiegarmelo con un frammento di codice commentato?
  • Re: Input File e Array

    Per leggere il file TXT ti basta una sola riga di comando:
    Dim MioFile = IO.File.ReadAllLine(.........)
  • Re: Input File e Array

    Cercando con google con le parole che ti ho indicato trovi questo https://www.daniweb.com/programming/software-development/threads/328483/open-textfile-and-read-lines-into-array che riporta alla fine proprio il codice indicato da SirJo, però un po' di buona volontà e qualche prova ci vogliono per imparare
  • Re: Input File e Array

    IvanSab ha scritto:


    Questo potreste spiegarmelo con un frammento di codice commentato?
    Il codice te l'ho proposto. L'hai aperto i link o no ?
  • Re: Input File e Array

    @IvanSab : "speravo in una risposta meno improntata al "Tieni e arrangiati" ma mi accontento"
    non volevo essere scortese o liquidare la questione ma su google puoi trovare molte più soluzioni di quanto possa suggerirti io ... ,
    per quanto riguarda il linguaggio credo che in c# tu possa trovare più esempi od articoli rispetto a quanto tu possa trovare in vb.net
Devi accedere o registrarti per scrivere nel forum
8 risposte