|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
[C++] ha senso creare questa libreria per il parsing di file?
Ciao,
pensavo di crearmi una libreria per fare parsing di file. Le funzionalità della libreria devono essere: trovare l'offset del primo carattere che si trovi all'interno di un file dopo un pattern passato come stringa. I limiti in cui verrà ricercato il carattere sono comunque compresi fra: SEEK_SET e SEEK_END pseudo codice (non fate troppo caso agli errori): Codice:
long seek_pattern(long start,long search_limit, string pattern, FILE * file){
string buffer;
if(start>SEEK_END)
return -1;
if(search_limit>SEEK_END)
return -1;
fseek(msmFile,SEEK_SET,start);
string::size_type len;
len = pattern.length();
int length << len;
if(search_pattern(file,search_limit,pattern,buffer)==true)
return ftell(file);
}
Ad esempio alla prima chiamata della funzione se si sta leggendo 'c' dal file e il primo carattere del pattern è 'c' allora richiamerà se stessa passandogli il buffer + 'c', altrimenti richiamerà se stessa passandogli il buffer vuoto. es pseudo codice Codice:
bool search_pattern(FILE*file,string pattern,string buffer) la funzione richiama se stessa passando il buffer + il carattere che sta leggendo nel caso il carattere del buffer corrisponda all'iesimo carattere della stringa. Altrimenti richiamerà se stessaa passando il buffer vuoto. Si arriverà al caso baso nel caso in cui il buffer sia uguale alla stringa passata come pattern o nel caso in cui si sia raggiunto il limite di ricerca. Verrrà restituito true se il pattern è stato trovato. false altrimenti. Codice:
double * get_ndouble(int n_of_double_to_obtain,FILE *file,long limit){
//converte i caratteri che trova (Se numerici) in double
//e li salva nell'array che poi restiuira
// tutto questo fino al limite limit di ricerca passato
}
e cos' via per gli int e gli altri tipi fondamentali... tutto questo per poter ricavare da un file degli array contententi valori che si trovino in una certa posizione e cosi in qualche modo simulare perl con le sue funzionalità di pattern matching su file. Grazie per la pazienza e non distruggete questo thread dicendo che ho scritto codice che fa schifo perchè ripeto è solo una bozza di idea.. Thanks! PS: esistono già librerie in c++ che fanno ciò? Ultima modifica di shang84 : 13-11-2005 alle 16:00. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:39.



















