View Full Version : c++: programmino per creare file txt
vermaccio
30-01-2007, 12:27
devo creare una lista di links luuuuunghissssssima del tipo
http://nome1:nome2@www.sito.it/sub1/sub2/XXX/indice.html
dove al posto di XXX ci devono essere TUTTI i numeri compresi tra 27.000 e 150.000
esempio
http://nome1:nome2@www.sito.it/sub1/sub2/27000/indice.html
http://nome1:nome2@www.sito.it/sub1/sub2/27001/indice.html
http://nome1:nome2@www.sito.it/sub1/sub2/27002/indice.html
...
..
.
http://nome1:nome2@www.sito.it/sub1/sub2/149999/indice.html
http://nome1:nome2@www.sito.it/sub1/sub2/150000/indice.html
insomma deve creare un file di testo (che io rinominerò poi a mano da .txt a .html aggiungendoci le intestazioni html body etc etc) così fatto:
<p>
<a href="http://nome1:nome2@www.sito.it/sub1/sub2/27000/indice.html">
link27000</a>
</p>
<p>
<a href="http://nome1:nome2@www.sito.it/sub1/sub2/27001/indice.html">
link27001</a>
</p>
etc etc etc
chi mi sa aiutare?
logicamente al posto di nome1, nome2, sito.it, sub1, sub2 metterò un'altra cosa precisa (sempre la stessa)
chi mi sa aiutare?Devi farlo usando tassativamente "cose" del C++ oppure ti va bene anche solo in C?
Comunque, indipendentemente da cosa userai per la gestione del file, si tratta poi solo di 1) aprire in scrittura il file, 2) scrivere l'header del file html, 3) Fare un ciclo for con 'i' che va da N a M (i tuoi valori min/max) al cui interno scrivi, sul file, il blocco <p>/<a> che si ripete (con il numero opportunamente formattato), 4) scrivere il footer del file html e chiudere il file.
Diciamo che te la cavi con 30~40 righette di codice.
vermaccio
30-01-2007, 12:59
c o c++ è lo stesso. devo creare la lista.
vermaccio
30-01-2007, 13:00
Comunque, indipendentemente da cosa userai per la gestione del file, si tratta poi solo di 1) aprire in scrittura il file, 2) scrivere l'header del file html, 3) Fare un ciclo for con 'i' che va da N a M (i tuoi valori min/max) al cui interno scrivi, sul file, il blocco <p>/<a> che si ripete (con il numero opportunamente formattato), 4) scrivere il footer del file html e chiudere il file.
Diciamo che te la cavi con 30~40 righette di codice.
il prolema è che non so aprire il file, non so come far scrivere sul file nel ciclo for, non so come far scrivere caratteri speciali come <, >, "
potresti gentilmente scrivere tu quste 40 righe?
il prolema è che non so aprire il file, non so come far scrivere sul file nel ciclo for, non so come far scrivere caratteri speciali come <, >, "
potresti gentilmente scrivere tu quste 40 righe?Ti posso scrivere un esempio banale .... poi però lo completi tu. ;) ;)
#include <stdio.h>
int main (void)
{
FILE *f;
int i;
if ((f = fopen ("nomefile", "w")) != NULL)
{
for (i = 1; i <= 10; i++)
{
fprintf (f, "<p>Ciao %d</p>\n", i);
}
fclose (f);
}
else
printf ("Errore\n");
return 0;
}Spero che ora ti sia chiaro come aprire, scrivere e chiudere il file.
Ovviamente manca la scrittura del header/footer e devi sistemare il blocco ripetuto. Ma con questo esempio non dovresti avere problemi a fare quello che ti serve.
vermaccio
30-01-2007, 13:49
grazie
ora ci provo e ti faccio sapere
vermaccio
30-01-2007, 13:54
problema.
quando sostituisco a "ciao" la
"http://nome1:nome2@www.sito.it/sub1/sub2/" ottengo in visualc++:
" fprintf (f, "<a href="http://nome1:nome2@www.sito.it/sub1/sub2/%d</p>\n", i);
ma dalla prima " in poi è tutto verde ed evidenziato come link. come risolvo?
vermaccio
30-01-2007, 13:54
risolot mettendo "" al primo "
" fprintf (f, "<a href="http://nome1:nome2@www.sito.it/sub1/sub2/%d</p>\n", i);Se all'interno di una stringa devi mettere un apice doppio, devi farne l'escape:
"<a href=\"http.....
vermaccio
30-01-2007, 14:01
scrivendo
fprintf (f, "<a href=""http://nome1:nome2@www.sito.it/sub1/sub2/%d", i,"/indice.html"">link</a></p>/n");
ottengo
<a href=http://nome1:nome2@www.sito.it/sub1/sub2/1<a href=http://nome1:nome2@www.sito.it/sub1/sub2/2
etc etc
come mai la seconda parte di testo
/indice.html"">link</a></p>
non viene scritta?
anche mettendo l'escape non cambia
fprintf (f, "<a href=\"http://nome1:nome2@www.sito.it/sub1/sub2/%d", i,"/indice.html\">link</a></p>/n");
fprintf (f, "<a href=\"http://nome1:nome2@www.sito.it/sub1/sub2/%d/indice.html\">link</a></p>/n", i);
vermaccio
30-01-2007, 14:13
risolto con
fprintf (f, "<a href=\"http://nome1:nome2@www.sito.it/sub1/sub2/%d/indice.html\">link</a></p>/n",i);
però non va a capo nonostante /n sia presente. come mai?
tomminno
30-01-2007, 14:21
risolto con
fprintf (f, "<a href=\"http://nome1:nome2@www.sito.it/sub1/sub2/%d/indice.html\">link</a></p>/n",i);
però non va a capo nonostante /n sia presente. come mai?
perchè deve essere \n\r sui sistemi windows, solo \n su *nix, \r su Mac
però non va a capo nonostante /n sia presente. come mai?\n
perchè deve essere \n\r sui sistemi windows, solo \n su *nix, \r su MacQuesto sul file .... nelle funzioni Xprintf va sempre e solo messo \n, è poi la libreria standard di I/O che scrive il newline corretto in base alla piattaforma su cui è compilato. ;)
vermaccio
30-01-2007, 14:27
oppps
grazie
risolto
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.