Ciao a tutti!
Vorrei sapere come posso scansionare una cartella e prelevare i file html contenuti ed unirli tutti
in un'unico file html che li contenga tutti!
Io vorrei realizzarlo in c++ ma va bene anche in java se qualcuno lo sa fare!
Grazie 1000
Ciao a tutti!
Vorrei sapere come posso scansionare una cartella e prelevare i file html contenuti ed unirli tutti
in un'unico file html che li contenga tutti!
Io vorrei realizzarlo in c++ ma va bene anche in java se qualcuno lo sa fare!
Grazie 1000
Ciao intanto per vedere i file contenuti in una cartella guardati le funzioni FindFirstFile(restituisce il primo file di una cartella) e FindNextFile(per recuperare i successivi).
Per quel che riguarda Unire i file guardati invece le funzioni fopen(apertura e creazione file), fseek(per posizionarti sul file),putc(per scrivere sul file).
Non è complicato ma non pretenderai che qualcuno ti posti tutto il codice vero? :adhone:Almeno cosi' impari qualcosa :adhone:
http://www.navimel.com
La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!
Grazie 1000!
VOlevo sapere quale funzione posso usare del c++ che mi restituisce i nomi delle cartelle contenute in una cartella!
Grazie ancora!
Ciao ho risolto tutto!
Solo che non riesco a capire come poter richiamare la funzione Scansiona dal main, forse lo definita male!?
Mi potete dare un consigli, di seguito inserisco il codice.
Grazie 1000
#include <stdio.h>
#include <fstream.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <direct.h>
void Scansione(void);
void main(char boo[160]){
void Scansiona(void);
char nome_file_finale[230], file_scansione[230], scan[1000], stringa[1000], stringa_tmp[1000];
cout << '\n' << "Sto lavorando..." << '\n';
strcpy (nome_file_finale, "provafine.html");
strcpy (file_scansione, "scansione.dir");
fstream file, file_finale, scansione;
file_finale.open(nome_file_finale, ios:ut);
scansione.open(file_scansione,ios::in);
scansione.getline(scan, 1000);
file.open(scan, ios::in);
int a, i=1;
if (!(file.is_open() * file_finale.is_open())) {
cout << "Errore nei file .htm";
}else{
while(!file.eof() && i){ //Primo file
file.getline(stringa, 1000);
if (strcmp (stringa, "</body>")) {
file_finale << stringa << '\n';
}else{
i=0; //Esce dal ciclo
}
}
}
file.close();
i=1;
for(a=0;!scansione.eof();a++){ //Tutti file meno che l'ultimo
scansione.getline(scan, 1000);
file.open(scan, ios::in);
while(!file.eof() && i){ //Cerca il <body>
file.getline(stringa, 1000);
strcpy(stringa_tmp, stringa);
stringa_tmp[5] = '\0';
if (!strcmp(stringa_tmp, "<body"))
i=0;
}
i = 1;
while(!file.eof() && i){ //Salva in filefinale fino a </body>
file.getline(stringa, 1000);
if (strcmp (stringa, "</body>")) {
file_finale << stringa << '\n';
}else{
i=0; //Esce dal ciclo
}
}
file.close();
}
file_finale.close();
scansione.close();
cout << "Finito!";
}
void Scansiona(void){
char nome[160]="d:\*.", dir_file[100] = "scansione.dir";
WIN32_FIND_DATA fd;
HANDLE h;
fstream dir;
dir.open(dir_file, ios:ut);
if (INVALID_HANDLE_VALUE!=(h=FindFirstFile(nome, &fd))){
cout << '\n' << fd.cFileName;
dir << fd.cFileName << '\n';
while (0!=FindNextFile(h,&fd)){
cout << '\n' << fd.cFileName;
dir << fd.cFileName << '\n';
}
}
return;
}