Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ricerca su file .txt separato da virgola
Forum - C/C++ - ricerca su file .txt separato da virgola

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
jeep1 (Normal User)
Newbie


Messaggi: 7
Iscritto: 26/02/2010

Segnala al moderatore
Postato alle 14:57
Venerdì, 26/02/2010
Salve a tutti,
Ho la necessità di scrivere una funzione in c++ che lavori pressapoco così:
Inserendo una chiave di ricerca (numerica o alfanumerica di lunghezza variabile),la confronti con il primo campo di un file esterno "xxxxx.txt" (composto da un numero imprecisato di righe, a loro volta composte da 6 campi di lunghezza variabile separati da virgola per ogni riga) e restituisca a video in caso di ricerca positiva le stringhe
1°campo
2°campo
3°campo
4°campo
5°campo
6°campo
su 6 righe differenti.
premetto che sono alle primissime armi, ed il programma deve funzionare sotto dos, fino ad ora sono riuscito a creare il meù dinamico per accedere alla funzione ed uscire dal programma, ma ora sono bloccato.
un grazie anticipato.

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:42
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da jeep1:

Salve a tutti,
Ho la necessità di scrivere una funzione in c++ che lavori pressapoco così:
Inserendo una chiave di ricerca (numerica o alfanumerica di lunghezza variabile),la confronti con il primo campo di un file esterno "xxxxx.txt" (composto da un numero imprecisato di righe, a loro volta composte da 6 campi di lunghezza variabile separati da virgola per ogni riga) e restituisca a video in caso di ricerca positiva le stringhe
1°campo
2°campo
3°campo
4°campo
5°campo
6°campo
su 6 righe differenti.
premetto che sono alle primissime armi, ed il programma deve funzionare sotto dos, fino ad ora sono riuscito a creare il meù dinamico per accedere alla funzione ed uscire dal programma, ma ora sono bloccato.
un grazie anticipato.



quindi sai usare le cout e i return. ma tutto il resto?

non ti assegnano mai un esercizio così fuori dalla portata, evidentemente c'era da seguire il corso ma sei rimasto forse alla prima lezione.

non venire a chiedere programmi già fatti, è la prima regola del forum.
inoltre "deve funzionare sotto dos" è in realtà la traduzione di "è un'applicazione console", perchè anche se la finestra è "di dos" il programma è di windows che scrive il suo output in una console.

hai detto di esserti bloccato, dove sta il codice già scritto?

postalo e partiamo da li.

PM Quote
Avatar
jeep1 (Normal User)
Newbie


Messaggi: 7
Iscritto: 26/02/2010

Segnala al moderatore
Postato alle 16:29
Venerdì, 26/02/2010
Purtroppo non sono arrivato neanche alla prima lezione, anche se mi sarebbe piaciuto farlo,sono un utente fai da te, e non voglio far perdere tempo a nessuno, vorrei solamente di cercare di capire quello che non trovo sui libri.
il codice che ho scritto fino ad ora è il seguente:

Codice sorgente - presumibilmente C#

  1. # include <iostream>
  2. # include <string>
  3. # include <fstream>
  4. # include <windows.h>
  5. using namespace std;
  6. struct listino
  7. {
  8.         string barcode;
  9.         string codice;
  10.         string descrizione;
  11.         string um;
  12.         string prezzo;
  13.         string iva;
  14. }listino;
  15. int main()
  16. {
  17. int scegli=(0||1),i;
  18. bool trovato;
  19. string barcode;
  20. while(scegli)
  21. {        
  22. system ("CLS");
  23.          cout <<"-0-Esci dal programma" << endl;
  24.          cout <<"-1-Leggi barcode" <<endl;
  25.          cout <<"\n";
  26.          cout << "ATTENZIONE NELLA SCELTA NON INSERIRE LETTERE !";
  27.          cout << "\n";
  28.      cin >> scegli;
  29.      if (scegli==0)
  30.          return 0;
  31.          if (scegli==1)
  32.          {
  33.                    i=0;        
  34.                     system("CLS");        
  35.                     string cerca;
  36.                     trovato=false;        
  37.                     ifstream open("listino.txt",ios::in);
  38.                     if (open)
  39.                              {
  40.                              cout << "Ricerca per barcode" << endl;
  41.                              cout << "Inserisci il barcode da ricercare:" << endl;
  42.                    cin>>cerca;                                                            
  43.                               while (!open.eof())
  44.                                  {                            
  45.                                   getline(open,barcode,',');
  46.                         if (cerca==barcode){
  47.                                                                                                    cout << "barcode=" << barcode << endl;
  48.                                   }//chiude if (cerca==barcode)
  49.                         }//chiude while (!open.eof())
  50.                 }//chiude if (open)
  51.          }//chiude if (scegli==1)
  52. else cout << "Inserire 1 per barcode o 2 per uscire" << endl;
  53. system ("PAUSE");
  54. }// chiude while (scegli)
  55. }//chiude main



così mi legge il primo campo del file txt ma solo se inserisco valori alfanumerici
p.s non sono uno studente, quando studiavo io stava uscendo il commodore 64
comunque ci provo lo stesso !

EDIT by HeDo: Codice va racchiuso tra i tag code

Ultima modifica effettuata da HeDo il 26/02/2010 alle 19:13
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:18
Venerdì, 26/02/2010

ok, sorry per il reply ma sei l'eccezione in un mare di puffi :)
ah ogni modo la getline ottiene una riga intera (fino al terminatore)

una volta che hai quella linea devi splittarla usando la virgola come delimitatore e a quel punto quando hai il campo corrispondente puoi fare il confronto.


PM Quote
Avatar
jeep1 (Normal User)
Newbie


Messaggi: 7
Iscritto: 26/02/2010

Segnala al moderatore
Postato alle 19:19
Venerdì, 26/02/2010
Scusa ma non so ancora utilizzare il forum, intendi dire che devo cliccare sul pulsante code in basso a sx (nella sezione post reply)prima e dopo aver inserito il mio codice ?

PM Quote
Avatar
jeep1 (Normal User)
Newbie


Messaggi: 7
Iscritto: 26/02/2010

Segnala al moderatore
Postato alle 19:23
Venerdì, 26/02/2010
quindi la dichiarazione di struct listino all'inizio non serve a nulla ?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:33
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da jeep1:

quindi la dichiarazione di struct listino all'inizio non serve a nulla ?



no serve, se vuoi leggere una struttura per volta e magari passarla a qualche funzione.

oppure puoi leggere prima tutto il file e fare le operazioni di cerca/aggiunta/eliminazione in memoria, dipende da che vuoi fare :)

PM Quote
Avatar
jeep1 (Normal User)
Newbie


Messaggi: 7
Iscritto: 26/02/2010

Segnala al moderatore
Postato alle 19:51
Venerdì, 26/02/2010
sul mio testo "fondamenti di C++ " non accenna a come splittare la riga, puoi consigliarmi un libro piuù completo?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 20:18
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da jeep1:

sul mio testo "fondamenti di C++ " non accenna a come splittare la riga, puoi consigliarmi un libro piuù completo?


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo