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++ - Dovrei velocizzare con versione analoga in C++ o VB6 un mio prg php
Forum - C/C++ - Dovrei velocizzare con versione analoga in C++ o VB6 un mio prg php - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:23
Lunedì, 27/07/2009
Testo quotato

Postato originariamente da tommyprojects:

si da il caso che sia la stessa persona che lo chiede... :)



Lo so.

Testo quotato


regex



Mi sa che la regex non ti serve proprio ... Dove hai caricato i valori che devi confrontare?

PM Quote
Avatar
tommyprojects (Normal User)
Rookie


Messaggi: 29
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 18:45
Lunedì, 27/07/2009
Credo di averli caricati in una stringa che poi con un comando specifico che ora non ricordo ho riportato per intero a video... :-|

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:15
Lunedì, 27/07/2009
Testo quotato

Postato originariamente da tommyprojects:

Credo ...



Testo quotato

non ricordo ...



Così non si va molto lontano ...

Scusa ... e a che dovevi applicare la regex? Ma qual e' il codice completo che hai scritto per caricare i dati?

E comunque, la regex non serve ... dopo aver caricato i dati di una sola linea, li confronti con quelle 4500 circa leggendo queste una per una ...


PM Quote
Avatar
tommyprojects (Normal User)
Rookie


Messaggi: 29
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 21:11
Lunedì, 27/07/2009
#include <iostream>
#include <regex.h>   (che non ho su c: ) ??? nel caso dove la potrei ricavare?


using namespace std;
int main (int argc, char *argv[])
{
//SPAZIO PER LETTURA FILE...
  
   FILE * pFile;
   char string [1000];

   pFile = fopen ("estrazioni.txt" , "r");
   if (pFile == NULL) perror ("Errore");
    
   else {
while(!feof(pFile))
{
fgets(string , 100 , pFile);


//-------prova espressione regolare

const char *reg_espr = "[ ,.\\t\\n;:]" ; // Elenco dei caratteri separatori.
// NOTA: l'apparato delle espressioni regolari considera il [[backslash]] come il
// compilatore C++, quindi, ad esempio, il carattere '\n' va indicato con "\\n".

regex rgx(reg_esp) ; // 'regex' è un'istanza della classe template
// 'basic_regex' con argomento di tipo 'char'.
cmatch match ; // 'cmatch' è un'istanza (predefinita) del templete
// 'match_results' con argomento di tipo 'const char *'.
const char *target = "BA" ;

// Identifica tutte le parole di 'target' delimitate dai caratteri di 'reg_espr'.
if( regex_search( target, match, rgx ) == true )
{
// Se sono presenti delle parole separate dai caratteri specificati.

for( int a = 0 ; a < match.size() ; a++ )
{
string str( matches[a].first, matches[a].second ) ;
cout << str << "\n" ;
}
}


//----------------------------------



puts (string);
}
}
//--------------------------

cout << "Press ENTER to continue..." << endl;
cin.get();
return 0;
}

ecco dove sono arrivato perora... :om:


"E comunque, la regex non serve ... dopo aver caricato i dati di una sola linea, li confronti con quelle 4500 circa leggendo queste una per una ... " non ho capito l'alternativa... anche se mi piacerebbe molto approfondire il discorso anche da questo secondo punto di vista... :D

Ultima modifica effettuata da tommyprojects il 27/07/2009 alle 21:14
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:17
Lunedì, 27/07/2009
1) stai programmando in C o in C++ ? Hai usato le funzioni fopen, fgets ... del C e non le classi del C++ ...

2) una volta che hai letto la stringa nella variabile string, cosa intendi fare con la regular expression, perche' non l'ho capito

3) fai un esempio di contenuto del file che stai leggendo (il contenuto di qualche riga ...)

PM Quote
Avatar
tommyprojects (Normal User)
Rookie


Messaggi: 29
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 21:32
Lunedì, 27/07/2009
[1] Non saprei... la differenza tra C e C++ le funzioni che ho preso qua e là per studiare e per costruirmi praticamente il mio programmino... erano sotto le voci c++ e non c...


[3]Un esempio del contenuto del file estrazioni è questo:

1939/01/07  BA  58  22  47  49  69                                          
1939/01/07  FI  27  57  81  43  61                                          
1939/01/07  MI  40  38  57  67  7                                          
1939/01/07  NA  85  44  48  88  55                                          
1939/01/07  PA  73  80  39  38  57                                          
1939/01/07  RM  73  24  4  39  22                                          
1939/01/07  TO  19  43  10  31  27                                          
1939/01/07  VE  9  43  61  14  75                                          
1939/01/14  BA  18  77  33  62  19                                          
1939/01/14  FI  31  47  12  7  80                                          
1939/01/14  MI  35  24  52  90  41                                          
1939/01/14  NA  4  10  36  63  35                                          
1939/01/14  PA  10  77  43  37  35                                          
1939/01/14  RM  4  86  61  84  58                                          
1939/01/14  TO  82  7  15  88  34                                          
1939/01/14  VE  85  21  45  65  56                                          
1939/01/21  BA  68  65  41  28  67                                          
1939/01/21  FI  37  82  69  9  67                                          
1939/01/21  MI  37  23  12  19  27                                          
1939/01/21  NA  15  76  82  11  55                                          
1939/01/21  PA  29  8  44  69  28                                          
1939/01/21  RM  36  74  7  70  76                                          
1939/01/21  TO  36  41  43  35  40                                          
1939/01/21  VE  76  85  50  42  22                                          
1939/01/28  BA  76  55  48  85  71                                          
1939/01/28  FI  24  40  12  77  30                                          
1939/01/28  MI  47  85  18  38  50                                          
1939/01/28  NA  73  34  8  39  17                                          
1939/01/28  PA  52  25  63  84  60                                          
1939/01/28  RM  56  87  82  90  53                                          
1939/01/28  TO  27  48  40  33  67                                          
1939/01/28  VE  58  84  13  51  32    

da cui vorrei estrapolare con la regular expression [2] solo...

1939/01/07  BA  58  22  47  49  69
1939/01/14  BA  18  77  33  62  19
1939/01/21  BA  68  65  41  28  67
1939/01/28  BA  76  55  48  85  71

ovvero solo quelle righe contenenti "BA" appunto... [2]



8-|

Ultima modifica effettuata da tommyprojects il 27/07/2009 alle 21:35
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:36
Lunedì, 27/07/2009
Quindi niente regex perche' basterebbe una semplice

Codice sorgente - presumibilmente Plain Text

  1. if(string[11]=='B' && string[12]=='A')
  2. {
  3.    // quello che vuoi ...
  4. }


PM Quote
Avatar
tommyprojects (Normal User)
Rookie


Messaggi: 29
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 23:02
Lunedì, 27/07/2009
funzia alla grandissima! :asd: grazie!

Adesso però dovrei ripulire le stringhe estrapolate contenenti "BA":

come questa ad es:

1939/01/07    BA    58    22    47    49    69

in modo da avere solo un unico array contenente solo...

elementi stringhe costituite ciascuna dai soli 5 numeri separati da virgola di ogni comb. uscita ...come secondo l'esempio:

array = [0]->58,22,47,49,69 ecc...

Adesso devo per forza ricorrere a regex.h vero? :-|

Ovviamente alla fine della storia per cercare di sdebitarmi un minimo se li vuoi ti do qualche numeretto buono  ;)

Ultima modifica effettuata da tommyprojects il 27/07/2009 alle 23:03
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo