Oppure

Loading
27/07/09 21:02
tommyprojects
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 27/07/09 21:03
aaa
28/07/09 15:07
tommyprojects
Ho fatto passettini da gigante pigmeo... 8-)

Ecco qua:

#include <iostream>
#include <fstream>

using namespace std;

int main (int argc, char *argv[])
{

ofstream pippo;
pippo.open("estrazioni2.txt", ios::out);
char s[]="test file";

//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);


if(string[11]=='B' && string[12]=='A')
{

//scelta delle sole righe conteneti BA


// quello che vuoi ...


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


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

int inizio, lunghezza;
//char stringa[1000]= string;
char subs[10];

inizio=13;
lunghezza=30;

strncpy(subs,string+inizio,lunghezza);
//subs[lunghezza]=0;


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

pippo << subs;

//puts (subs);



}
}
}


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


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

In pratica adesso ho un file estrazioni2.txt con solo i numeri di BA separati da enne spazi... spazi piccoli tra i numeri di ciascuna estrazione e spazi grossi tra una estrazione e l'altra...

prima di passare al confronto di array... dovrei sostituire al posto degli spazi piccoli il carattere "," mettere le varie estrazioni una sotto l'altra... e infine... aggiungere alla fine di ognuna di esse un carattere ";"

Un pò di strada l'ho fatta :) ma me ne resta ancora moltissima davanti... :heehee:

la funzione replace esiste in c++? se si.. come si usa?

THANKS a tutti gli eventuali contributi :k:
Ultima modifica effettuata da tommyprojects 28/07/09 15:08
aaa
02/08/09 9:55
tommyprojects
Dunque anche questo STEP ^ l'ho risolto 8-) adesso sono in possesso di due file FILE1 e FILE2 regolarmente formattati... e devo inserirne le rispettive righe in due relativi arrays...

Ecco il codice di lettura di uno dei due file con la tentata... implementazione dell'inserimento in array...

    	
# include <iostream>   // librerie 
# include <fstream>   // necessarie per le seguenti operazioni 


using namespace std;


int main (int argc, char *argv[])
{

string linea; 
string array[4600];
int numrighe=0;
                          
ifstream read("file1.txt",ios::in);  // apre il file 'file1 in lettura' 
  if(read) 
        { 
        while(!read.eof()) //mentre non siamo arrivati alla fine del file 
                        {                                                 
                        getline(read,linea,'\n'); 
                        cout << linea << endl;
                        numrighe++;

                       
//provo a caricare un VETTORE (array) con le stringhe ricavate...

string ARRAY1[5000]; //inizializzo array1
//cerco di popolare il vettore... array... di ogni singola riga-stringa-linea...

for (int i=0;i<5000;i++) { 


ARRAY1 << linea[i];  // Ma nulla... al momento della compilazione ottengo:



32 C:\Dev-Cpp\cisonoquasi\cisonoquasi\CARICAMENTOARRAY1-prova2.cpp invalid operands of types `std::string[5000]' and `char' to binary `operator<<' riferito alla riga:


ARRAY1 << linea[i];


}






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

        
                        }     
                        
//numero righe: 4537

cout << "\n\n\n";
cout << "NUMERO RIGHE:";
cout << numrighe;
cout << "\n\n\n";

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

	
read.close(); /* chiude il file */ 

} 
} 


Ultima modifica effettuata da tommyprojects 02/08/09 10:04
aaa
02/08/09 10:01
theprogrammer
Postato originariamente da tommyprojects:

Dunque anche questo STEP ^ l'ho risolto 8-)


Dire che lo hai risolto mi sembra eccessivo ... te lo hanno risolto, sarebbe meglio ... :-)

adesso sono in possesso di due file FILE1 e FILE2 regolarmente formattati... e devo inserirne le rispettive righe in due relativi arrays...


Perche' non lo facevi durante la scrittura di FILE2?
aaa
02/08/09 10:07
tommyprojects
Postato originariamente da tommyprojects:

Dunque anche questo STEP ^ l'ho risolto 8-)


Dire che lo hai risolto mi sembra eccessivo ... te lo hanno risolto, sarebbe meglio ... :-)

Io in primis devo ricostruire il programma + veloce :blush: poi mi dedicherò allo studio approfondito della materia che devo dire comincia davvero ad affascinarmi... :D

adesso sono in possesso di due file FILE1 e FILE2 regolarmente formattati... e devo inserirne le rispettive righe in due relativi arrays...


Perche' non lo facevi durante la scrittura di FILE2?


Non ho capito la domanda... :-| :)
aaa
02/08/09 10:14
theprogrammer
La prima era una affermazione ... diciamo che lo hai avuto risolto.

Per la domanda, se devi caricare i dati in un array perche' non farlo quando stai leggendo da FILE1 per scrivere in FILE2? Intendo, nello stesso codice ?
aaa
02/08/09 10:20
tommyprojects
Perchè FILE1 e FILE2 non devono venir sovrascritti...

Meglio parlare di uno solo FILE1...

FILE1 ad esempio deve venir letto e inserito nel totale delle sue righe in rispettivi elementi di ARRAY1

Es.

FILE1:

1,2,3,4,5;
14,5,26,7,8;
7,3,9,10,16;

deve diventare...

ARRAY1=([0]=1,2,3,4,5[1]=14,5,26,7,8[2]=7,3,9,10,16);

lasciamo stare FILE2 :) che non è altro che un altro file da elaborare successivamente allo stesso modo...

Ultima modifica effettuata da tommyprojects 02/08/09 10:21
aaa
02/08/09 10:40
tommyprojects
Postato originariamente da tommyprojects:

Perchè FILE1 e FILE2 non devono venir sovrascritti...

Meglio parlare di uno solo FILE1...

FILE1 ad esempio deve venir letto e inserito nel totale delle sue righe in rispettivi elementi di ARRAY1

Es.

FILE1:

1,2,3,4,5;
14,5,26,7,8;
7,3,9,10,16;

deve diventare...

ARRAY1=([0]=1,2,3,4,5[1]=14,5,26,7,8[2]=7,3,9,10,16);

lasciamo stare FILE2 :) che non è altro che un altro file da elaborare successivamente allo stesso modo...




Risolto... anche questo grazie ad un altro amico programmatore... così non importa che vai a verificare :) adesso procedendo... dovrei:

riprendere ogni elemento (stringa) dell'array...
ritrasformarlo in array ARRAY1diSTRINGA1

e confrontarlo con un qualcosa di analogo a array_intersect (php) in c++ infine con ARRAY2diSTRINGA2 (proveniente dallo stesso tipo di elaborazione ma per FILE2) per vedere quante occorrenze risultino eventualmente verificate.

GRAZIE
CIAO
e
BUONA SUNDAY!
:)
aaa