mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Verifica codice fidcale e p. iva


ICQ #34602650

>Cerco l'algoritmo per la verifica di congruenza (non il calcolo) del codice
fiscale
/*
  Il 16° carattere controlla la correttezza dei primi quindici.
  A ciascuno dei 15 caratteri di posto pari e di posto dispari viene
  assegnato un numero come indicato nelle tabelle seguenti:
  Conversione dei sette caratteri di posto pari
    A o 0 = 0       G o 6 = 6        M = 12       S = 18       Y = 24
    B o 1 = 1       H o 7 = 7        N = 13       T = 19       Z = 25
    C o 2 = 2       I o 8 = 8        O = 14       U = 20
    D o 3 = 3       J o 9 = 9        P = 15       V = 21
    E o 4 = 4       K     = 10       Q = 16       W = 22
    F o 5 = 5       L     = 11       R = 17       X = 23
  Conversione degli otto caratteri di posto dispari
    A o 0 = 1       G o 6 = 15       M = 18       S = 12       Y = 24
    B o 1 = 0       H o 7 = 17       N = 20       T = 14       Z = 23
    C o 2 = 5       I o 8 = 19       O = 11       U = 16
    D o 3 = 7       J o 9 = 21       P = 3        V = 10
    E o 4 = 9       K     = 2        Q = 6        W = 22
    F o 5 = 13      L     = 4        R = 8        X = 25
  I numeri così definiti vengono addizionati e la somma si divide per
  il numero 26.
  Il carattere di controllo si ottiene convertendo il resto di tale
  divisione nel carattere corrispondente come indicato nella seguente:
  Conversione del resto nel carattere di controllo
    0 = A      6  = G      12 = M      18 = S      24 = Y
    1 = B      7  = H      13 = N      19 = T      25 = Z
    2 = C      8  = I      14 = O      20 = U
    3 = D      9  = J      15 = P      21 = V
    4 = E      10 = K      16 = Q      22 = W
    5 = F      11 = L      17 = R      23 = X
*/
Questa e' una funzione che ho scritto io:
char CodiceControllo(AnsiString codice)
{
    // analizza il C.F. fin qui calcolato e ritorna il codice di controllo
    // corrispondente al 16° carattere del C.F.
    AnsiString tabDispari = "BAKPLCQDREVOSFTGUHMINJWZYX";
    int pari, dispari, p;
    char val;
    pari = dispari = 0;
    // calcola il valore dei caratteri di posto dispari
    p = 1;
    while (p < 16) {
        val = codice[p];
        // trasforma il numero nella lettera corrispondente
        if (isdigit(val)) val = char(StrToInt(val) + 'A');
        dispari += tabDispari.Pos(val) - 1;
        p += 2;
    }
    // calcola il valore dei caratteri di posto pari
    p = 2;
    while (p < 15) {
        val = codice[p];
        // trasforma il numero nella lettera corrispondente
        if (isdigit(val)) val = char(StrToInt(val) + 'A');
        pari += int(val - 'A');
        p += 2;
    }
    pari += dispari;       // si sommano i due valori
    pari %= 26;            // e si prende il modulo 26
    return char('A' + pari);
}
Ciao.
--
Stefano Tempesta
PC Service Software
http://
Newsgroup: it.comp.lang.c++
Titolo: usase un obj con borland c++ 3

ho un problema...
devo riuscire ad includere un obj in un file c
il file è pcrobots.obj e si trova nella dir con tutti gli altri obj.
uso anche la riga:
#include <pcrobots.h>
ma non vengono individuate le funzioni contenute nel file obj.
come posso fare???
undefined symbol è l'errore restituito...

 ha scritto nel messaggio
news:DZaB8.11030$US3.2...@twister1.libero.it...

Non basta fare un include dell'header, quello serve solo per far sapere alle
parti successive come sono fatte le classi e le funzioni del modulo
"pcrobots". Devi trovare il modo di linkare insieme al main tutti gli altri
file oggetto precompilati, ma questo dipende dal compilatore. Nel caso del
Borland, se usi la GUI, sicuramente c'è anche il modo di includere nel
progetto i file in questione, ma faresti meglio a chiedere ad un newsgroup
specifico.
Ciao,
Cecco
Newsgroup: it.comp.lang.c++
Titolo: Cercasi programmatore C++

Società leader nella progettazione e produzione di apparecchiature
elettromedicali
CERCA PROGRAMMATORE
anche prima esperienza lavorativa purché con ottima conoscenza del
linguaggio C++, della programmazione sotto Windows (MFC) e con una buona
conoscenza dell'inglese scritto e parlato.
Inviare curriculum a:
j...@cosmed.it
oppure a:
COSMED Srl
Via dei Piani di Monte Savello, 37
00040 Pavona di Albano Laziale
Roma

www.programmazione.it
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Vi prego AIUTO (--TESI--) !!!!

Salve, i miei tormenti continuano.
Ho scaricato il BCC 5.5 dal sito della Borland. Sapevo già che si trattava
di un compilatore a linea di comando ma... come la mettiamo col limite che
impone il DOS sulla max lunghezza di caratteri che posso passare al prompt?
Voglio dire, se ad es si devono linkare 20 files .obj come si fa se poi il
DOS non mi fa più scrivere i nomi alla riga di comando....dopo un po taglia
e non riesco più a scrivere niente.
ES.
Modulo_1.obj
Modulo_2.obj
....
...
...
Modulo_20.obj
Al prompt mi ritrovo in questa situazione:
C:\my_directory\Bcc32 Modulo_1.obj Modulo_2.obj......   (dopo di che,
arrivato ad es a Modulo_15.obj)... Modulo_14.obj Modu (qui, ora anche se
scrivo non si visualizza più niente sulla riga del prompt  . E ora che si
fa?)
Certo, mi potreste rispondere che posso usare dei nomi di files più corti...
ma se ad uno non va di usare nomi incomprensibili del tipo
a1.cpp   a2.cpp    a3.cpp, ecc. ecc. che si fa?
E poi comunque il limite verrebbe raggiunto, basta far crescere il numero di
files .cpp a 25, 30,.. 50... non si sa, può capitare.
Ditemi che una soluzione c'è, vi prego, senno il Borland in modalità testo
sarebbe una cacca !!!
Sono bloccato da oltre due giorni e non riesco ad andare avanti sulla tesi.
Avevo provato a cambiare IDE, usando il "tanto decantato" sul sito
www.programmazione.it
 DEV-C++ 3.99 , ma mi da un errore in compilazione che
il Borland C++ 5.02 non mi dava.... e credo che abbia ragione il Borland,
perchè si incazza se chiamo randomize()....
mi dice:
(Line) 27 (Unit) channel.cpp
(message) implicit declaration of function `int randomize(...)'
mentre col borland  C++ qui ci passa liscio, neanche un warning su questo
punto.
Vi prego, aiuto!!!!!
Sebastiano


La funzione randomize non è standard.
Leggi le FAQ per sapere come sostituirla.
Manlio Perillo

fa?)
usa "Bcc32 @objlist" dove objlist e' il nome di un file che
contiene tutti i moduli del progetto es:
--------------- Inizio di objlist
Modulo_1.obj
Modulo_2.obj
Modulo_3.obj
...
Modulo_20.obj
--------------- Fine di objlist
Purtroppo la documentazione delle opzioni di lancio del
compilatore e' stata rimossa ad arte dai file di help
forniti. D'altra parte si tratta di un rilascio free per
cui posso comprendere la reticenza di Borland/Inprise.
Invece di "randomize" (non standard) dovresti
inoltre guardare "srand" (standard)
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff


Secondo me, se non vuoi perdere tempo con il compilatore perchè il tuo
scopo è scrivere un programma per una tesi che ha una scadenza ti
conviene 'procurarti' un VC++ che ti permette di codificare da subito
senza troppi fronzoli...
Ciao, Luc.

Probabilmente e' meglio che ti procuri direttamente il C++ Builder, del
quale si trovano disponibili gratuitamente le vecchie versioni (credo
addirittura la 4.0, ovvero la penultima).
Ciao,
Nicola

 Se si vuole programmare per Windows la cosa è diversa...
Senza dubbio.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: WinSocket

C'e' qualcuno che mi puo' indicare un manuale in italiano o in inglese su i
socket in win98
Anche se non e' on-line fa niente
Non riesco a programmare i socket asincroni in particolare la funzione
WSAAsyncSelect()!!!
Grazie

 ha scritto:

Io ho un manuale in inglese in formato doc, hlp o html. Se lo vuoi dimmelo. Te lo spedisco.
Se accetti un consiglio lascia stare le socket asincrone e fai tutto sincrono con i thread.
Antonio

Se fosse possibile gradirei anche io riceverlo
Antonio Donatiello <ant...@REMOVETHISgeminisoft.com> wrote in message
88bvem$r3c$1...@fe1.cs.interbusiness.it...


...


>Grazie (non sono tanto esperto...)
Thread non e' una fuzione. Un thread e' una parte del tuo programam che viene eseguita contemporaneamente al resto.
Con la funzione CreateThread puoi creare un thread passando il puntatore alla funzione che vuoi eseguire.
Ti consigliavo l'uso dei thread al posto delle socket asincrone perche' in questo modo puoi ad esempio fare una recv() e attendere perche' comunque il tuo programma continua a girare.
Naturalmente la programamzione con i thread non e' molto semplice.
Antonio

Ha ragione Donatiello (con il quale ho avuto il piacere di lavorare): butta
via tutta la roba sincrona e usa i thread!

Newsgroup: it.comp.lang.c++
Titolo: Programmi a finestre

Dove posso trovare un manuale online completo sulla creazione di
programmi GUI (che fanno uso di file .RES o .DLG)?

 programmi GUI (che fanno uso di file .RES o .DLG)?
su Google dovresti trovare qualcosa che fa al caso tuo...
malchevada prova su emule a cercare un pdf.
ciao

 programmi GUI (che fanno uso di file .RES o .DLG)?
devi prima decidere che framework utilizzare.
Se ad esempio sei legato ad un singolo sistema operativo puoi
utilizzare le API native del server grafico.
Win32 e le sue CreateWindow ad esempio.
Oppure rivolgerti a librerie adatte per semplificarti la vita, GTK++,
QT, MFC, WXWIDGET ce ne sono quante ne vuoi :)
Daniele

Newsgroup: it.comp.lang.c++
Titolo: lettura file con buffer

Esiste una classe standard che mi permette di leggere  da un file, e che mi
gestisca da sola la bufferizzazione?

 gestisca da sola la bufferizzazione?
#include <fstream>
std::ifstream f("nomefile");
        Mauro

 ha scritto nel messaggio
news:87wu0ea...@iperbole.bologna.it...

ok ti mostro la classe che vorrei implementare:
class StreamText: public Text
{
protected:
 mutable std::ifstream file;
public:
 StreamText(const std::ifstream& in);
 ~StreamText();
 virtual char operator[](int index) const;
 virtual int size() const;
 virtual std::string substr(int begin, int pos) const;
};
prima cosa:
come si ritorna la lunghezza del file.
seconda cosa:
come ottengo il index-esimo carattere del file, nel modo piu veloce
possibile (quindi utilizzando il buffer interno)?
Newsgroup: it.comp.lang.c++
Titolo: problema con l'allocazione dinamica di matrici...

Salve ha tutti...
ho qualche dubbio riguardo l'allocazione dinamica delle matrici...
tipodato (*ptr_arr)[20];
ptr_arr=new tipodato[n][20]
chi mi può spiegare dettagliatamente cosa succede di preciso allocando in
questo modo?
vi ringrazio
Samuele
s...@gem.it

 questo modo?
Succede che allochi spazio per n array di 20 tipodato e che puoi
utilizzare poi la notazione a doppio indice per accedere agli elementi
della matrice cosě rappresentata.
EMG
Newsgroup: it.comp.lang.c++
Titolo: Qual'è il migliore manuale per C++

Qual'è il migliore manuale per C++

Qual'è il migliore manuale per C++
E' una parola...tra i migliori per cominciare sono "Thinking in C++" di
Bruce Eckel e "C++ Primer" di Stanley Lippmann & co.
Di intermedi-avanzati ce ne sono svariati con target diversi, dallo
Stroustrup (anzi, gli Stroustrup) a "Inside The C++ Object Model" di
Lippmann, a Large-Scale C++ di Lakos. Ma la lista potrebbe allungarsi. A
qualcuna interessa se preparo una lista di letture consigliate con i pro e
i contro (IMHO, ovviamente) su 
http://www.DavideMarcato.com
?
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Windows/COM(+) Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
 (UPDATED!)
----------------------------------------------------

Per chi non ha problemi con l'inglese il sito dell'Association of C &
C++ users, 
www.accu.org
 , ha una notevole bibliografia su C, C++ e Java,
in cui tutti i testi indicati sono recensiti.
Saluti,
Nicola Musatti

 i contro (IMHO, ovviamente) su 
http://www.DavideMarcato.com
?
Sicuramente si. Ci dai l'URL quando l'articolo è pronto? Grazie.
EMG

i contro (IMHO, ovviamente) su 
http://www.DavideMarcato.com
?
Moltissimo.
Grazie.
-- 
Ing. Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass

Newsgroup: it.comp.lang.c++
Titolo: La radice quadrata e la potenza

Salve io uso il BorlandC 3.0 sotto dos ma non sono riuscito a capire come si
effettua la radice quadrata e la potenza di un numero.
Potete indicarmi la soluzione all'indirizzo 
palmese....@tin.it

...

per la radice usa le funzioni:
double sqrt(double)
long double sqrt(long double)
per la potenza:
double pow(double ,double )
long double  pow(long double ,long double )
Le hai disponibili includendo MATH.H
ciao
Luca

long double  pow(long double ,long double )
Il problema č se il numero č int...

 Il problema è se il numero è int...
No problem : basta fare un cast.

 No problem : basta fare un cast.
La promozione di un int a un double è automatica (e il tipo long double
non è standard).
EMG

non è standard).
Sono sicuro che trattasi di errata espressione, ma long double come
tipo e` standard, non sono standard le funzioni di radice quadrata
e potenza che vi operano...
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

 tipo e` standard,
Sorry, è vero.
EMG
Newsgroup: it.comp.lang.c++
Titolo: linguaggio c

Che differenza c'è tra  C, C++, C#, VISUAL C++, VISUAL C#?
Come faccio a sviluppare programmi ad oggetti sotto linux redhat 8.0?Si usa
sempre il c++?

 sempre il c++?
Certo, Linux ha un compilatore standard per il C++, è indifferente da
quelli per Windows, un programma in C++ standard non dovrebbe aver
differenze fra le piattaforme.
ciao

 wrote in message
news:A0sD9.58081$Yw.26...@news2.tin.it...


Newsgroup: it.comp.lang.c++
Titolo: Controllo statico assetto in memoria di classi

Supponiamo che io abbia due classi POD intenzionalmente "equivalenti" 
nel senso che hanno lo stesso assetto in memoria (pur anche usando tipi 
diversi per i membri).
O meglio diciamo che io sono interessato al fatto che abbiano lo stesso 
assetto in memoria *nell particolare contesto in cui viene compilato il 
codice*: non mi interessa che questa proprietà sia vera in assoluto, per 
tutti i compilatori e per tutte le piattaforme.
Ad esempio:
struct SA
{
   int a;
   char b;
   double c;
   void* p;
};
struct SB
{
   size_t aa;
   unsigned char bb;
   double cc;
   int pp;
};
Il mio scopo è proprio quello di verificare staticamente che i vari 
campi delle due struct "matchino" tra loro quando viene compilato il 
codice. Cioè in pratica voglio verificare prima di procedere oltre che 
la proprietà che ho espresso sopra sia vera.
(in pratica voglio "castare" oggetti di tipo SA in oggetti di tipo SB o 
viceversa)
Ho fatto così:
#define CHECK_STRUCT_MEMBER(s1, m1, s2, m2) \
BOOST_STATIC_ASSERT(sizeof(((s1*)(0))->m1) == sizeof(((s2*)(0))->m2)); \
BOOST_STATIC_ASSERT((void*)&((s1*)(0))->m1 == (void*)&((s2*)(0))->m2);
e poi:
CHECK_STRUCT_MEMBER(SA, a, SB, aa);
CHECK_STRUCT_MEMBER(SA, b, SB, bb);
CHECK_STRUCT_MEMBER(SA, c, SB, cc);
CHECK_STRUCT_MEMBER(SA, p, SB, pp);
Se invece avessi voluto un'equivalenza più stretta (in cui volevo 
esattamente gli stessi tipi) avrei usato:
#define CHECK_STRUCT_MEMBER_2(s1, m1, s2, m2) \
BOOST_STATIC_ASSERT(&((s1*)(0))->m1 == &((s2*)(0))->m2);
A me sembra che funzioni, ma volevo un parere da qualcuno più esperto.
Poi non è che esiste già qualcosa di simile in boost o in qualche altra lib?
Poi a qualcuno viene in mente un modo per "automatizzare" anche 
l'"espansione" di tutti i membri delle struct per evitare di dover 
snocciolare a mano tutti i campi (magari in futuro qualcuno aggiunge un 
campo e sarebbe bello se il compilatore facesse bang). A questo 
proposito ho messo anche un bel
BOOST_STATIC_ASSERT(sizeof(SA) == sizeof(SB));
ma non è detto che basti per via del packing...
GM

 ma non è detto che basti per via del packing...
secondo me lo puoi fare a patto di usare type lists (alla boost, per
intendersi) al posto di plain struct
in tal caso hai una sorta di introspezione al compile time attraverso
cui implementare l'equivalenza (ricorsiva) membro a membro
da notare gli oggetti ottenuti in questo modo sono comunque POD: tutte
le informazioni in più sono usate solo al compile time e non alterano
la struttura finale in uso al run-time
Marco
Newsgroup: it.comp.lang.c++
Titolo: vi viene in mente un programmino....

Ciao volevo chiedervi di consigliarmi un programmino da implementare allo
scopo di imparare e far pratica con le liste dinamiche. Non troppo
difficile...sono ancora un pollo col C++....
Ciao Gianni.
--
Posted from 
twingo.tiscalinet.it
 [195.130.224.85] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

un programma per gestire le moltiplicazioni tra polinomi?
tenendo conto che un polinomio è una lista di monomi .
ciao
Alberto

un orologio ore minuti secondi....

Newsgroup: it.comp.lang.c++
Titolo: File di Help su Windows 98

Su Windows 98 è possibile realizzare i file di aiuto utilizzando
semplicemente html invece che il vecchio formato basato su RTF?
-- 
Fabrizio Di Giuseppe
mailto:
fabr...@iride.com
http://www.iride.com/

semplicemente html invece che il vecchio formato basato su RTF?
Pare di si`; almeno, usando l'HTML Help Workshop, gratuitamente
scaricato, non ho avuto problemi a mettere in un .CHM una pagina
HTML di prova e un controllo ActiveX che avevo sviluppato.
Alex
Newsgroup: it.comp.lang.c++
Titolo: visual studio

Salve a tutti, non so se questo è il gruppo giusto dove fare questa
domanda, ma io la faccio lo stesso :)
Dunque, mi diletto nello sviluppo in c e c++. Come strumento di
sviluppo utilizzo visual studio 2008 (la express che è gratuita) e
che
trovo molto comodo quando devo fare debug. Premesso questo, il
problema che mi trovo ad affrontare è che il compilatore c di visual
studio è piuttosto vecchio e anche non standard se non sbaglio. Per
questo motivo vorrei poter utilizzare un altro compilatore (e quindi
anche un altro linker) per i miei applicativi. Vengo quindi alla
domanda. Qualcuno sa indicarmi come utilizzare un altro compilatore/
linker in visual studio e come settarlo? A quanto ne so dovrebbe
essere possibile.
Grazie a tutti per le informazioni

 essere possibile.
 
Dubito che in Visual Studio sia possibile eseguire il debug a livello di 
codice sorgente di un programma compilato con un compilatore non 
Microsoft, ma potrei sbagliarmi.
 
Comunque esistono altri buoni IDE open-source per il C++ in ambiente 
Windows, come Code::Blocks, Eclipse, NetBeans, KDevelop, Emacs.
 
-- 
 
Carlo Milanesi
http://carlomilanesi.wordpress.com/
 


wrote:



 
Magari mi ricordo male perché è un remoto ricordo di VS6, ma ci dovrebbe 
essere uno switch, o un pragma, o un'opzione di progetto che dice a MSVC 
di compilare i sorgenti secondo la sintassi C invece che C++. Prova a 
vedere la doc del compilatore...
 

Fumo Indiretto ha scritto:

Ciao, c'è il compilatore della Intel che a mio parere è quello
che produce il codice migliore (per processori Intel). Supporta
buona parte dello Standard C99 ed è pienamente integrabile in
Visual Studio. Unica pecca: non è gratuito per Windows, ma lo è
per Linux, per scopi non commerciali, ed integrabile perfettamente
con l'IDE Eclipse.
http://software.intel.com/en-us/articles/non-commercial-software-download/
 
 
PS: il linker resta sempre quello di Visual Studio (su Windows),
d'altra parte quello che dev'essere compatibile col C99 è il
compilatore (che produce il codice oggetto). Il linker serve
soltanto a risolvere collegamenti a simboli contenuti in vari
"file oggetto" (i file .obj prodotti su Windows, per esempio),
allo scopo di produrre l'eseguibile finale.
 
-- 
Vincenzo Mercuri | 
www.backbox.org
Newsgroup: it.comp.lang.c++
Titolo: Le magiche virgole

Come prestazioni (lasciando perdere la leggibilita' che qualcuno potrebbe
tirare in ballo)
cosa cambia tra questo
while (++i, array[i] = function(buff)) { ... }
e questo
i++;
while (array[i] = function(buff)) { ... i++; }
cioe' amo un casino le possibilita' di contrarre il codice che dite di
queste possibilita' ??? il compilatore come le vede le ottimizza di suo o da
stupido manda cmq in controllo anche leprime parti prima dell'ultima virgola
che poi e' il controllo vero ???
ciao

 che poi e' il controllo vero ???
Tommy

 Tommy
scusa se mi son espresso male anche con gli esempi ... cioe' in casi
complessi con oggetti o altro volevo solo sapere se nel momento che usavo il
comma in una istruzione di controllo essa andava a perdere tempo a testare
cmq tutte le altre parti dell'suo operatore o se invece come mi hai detto
esso non stupido considera solo l'ultima a destra.
erano solo curiosita' ... mi e' gia' capitato qualche volte in linguaggio
non c ad avere bisogno di una forma contratta per ridurmi la digitazione di
altre 5-10 righe di codice ... e quindi mi chiedevo un po come il
compilatore c le interpretasse
cmq diciamo che era solo una curiosita' per quando poi implementero' i miei
oggetti.
grazie per le tue risposste

Io penso che non serva incasinarsi la vita: certe ottimizzazioni oggi le fa
il compilatore meglio di noi. Le ottimizzazioni che possiamo fare noi umane
sono quelle (più importanti penso) a high level.
Eppoi, come dice il mio prof di Tecniche e Linguaggi di Programmazione (col
quale non sono al 100% daccordo): "non masturbatevi col C".
Dome

Newsgroup: it.comp.lang.c++
Titolo: SringGrid, e controllo validita' di un float

Salve a tutti, mi chiamo Lucio.
Due domande su Builder C++ :
1) Qualcuno di voi puo' indicarmi come utilizzare l'oggetto StringGrid o
DrawGrid per visualizzare ed editare un array di float ?
2) Come posso verificare la validita' di un float prima di incorrere in
qualche eccezione che mi termina il programma?
Grazie a tutti, Ciao

qualche eccezione che mi termina il programma?
Se il valore lo prelevi da un TEdit, puoi fare cosě:
double valore;
try {
    valore = Edit1->Text.ToDouble();
}
catch (...) {
    valore = 0;
}
--
Byez.
Stefano Tempesta
s.tem...@usa.net
http://tempesta.freeweb.org
--------------------------------
<<< Think indipendent, cos' indipendent you can't be >>>

 ...........................
Newsgroup: it.comp.lang.c++
Titolo: operatore [] a livelli multipli

Ciao a tutti!
Rieccomi con un altro dei miei dubbi da studente del c++...
Questa volta quello che ni crea problemi e' l'overloading degli
operatori, in particolar modo della parentesi quadra usata a livelli
multipli.
Ho capito che per fare cio' devo fare in modo che il "risultato" della
prima parentesi deve essere un oggetto, di cui viene poi chiamato a
sua volta l'operator[]... per fare cio' con due livelli di parentesi,
ad esempio, sul mio libro usa tre classi, di cui la prima contiene un
istanza della seconda e la seconda una della terza...fin qui ci sono,
ma come posso gestire livelli ulteriori al secondo? Devo per forza
creare n+1 classi per usare n livelli, o c'e' un'altra soluzione (per
favore non i template, non li ho ancora abbordati... ;))?
Inizialmente, avevo pensato a una classe che contiene un'isatnza di se
stessa, ma subito dopo mi sono accorto che questo significa entrare in
un ciclo infinito... o almeno credo.
Grazie per l'aiuto e scusatemi per la poca chiarezza,
<manoo> 

favore non i template, non li ho ancora abbordati... ;))?
Lascia perdere le parentesi quadre, e usa le tonde (operator()), che
puoi overloadare con tanti indici quanti te ne servono.  Non impazzire
per uno "zucchero sintattico" che tra l'altro e` per nulla dolce...:
        matrice[i][j][k][l][m][n] = 23;    // versione con quadre
        matrice(i,j,k,l,m,n) = 23;         // versione con tonde
...vale la pena di farsi un mazzo quadro per il "gusto" di avere la
prima forma sintattica, quando la seconda e` tanto piu` facile da
avere e certo non meno leggibile...?-)
Alex

avere e certo non meno leggibile...?-)
E'vero, infatti la mia non era una necessita', era semplice
curiosita'...
Ciao,
<manoo>

curiosita'...
E allora, per toglierti la curiosita`: l'uso di N livelli di indiciamento
e` ragionevolmente facile da ottenere con l'uso dei template
(e relativa partial specialization).  Indicativamente:
template<class T, int N> class indexer {
public:
    indexer<T,N-1>& operator[](int);
};
template<class T> class indexer<T,0> {
public:
    T& operator[](int);
};
piu` le relative implementazioni, naturalmente.  Ma,
se non sbaglio, avevi specificato fra l'altro di non
usare i template, che un po' come chiedere come
si fa in C++ a fare aritmetica senza usare le quattro
operazioni.  E non molti compilatori supportano in
modo corretto e completo la partial specialization di
template, a tutt'oggi.
Alex
Newsgroup: it.comp.lang.c++
Titolo: falso allarme con il BCC5.5?

Ho compilato il seguente programma con il BCC5.5
#include <vector>
class A
{
  public:
    A() {  }
};
class B: public A
{
  public:
    B() {  }
};
main()
{
  std::vector<const A*> v;
  v.push_back(new A);
  v.push_back(new B);
}
Ed ho ottenuto:
Warning W8030 19: Temporary used for parameter 'x' in call to 'std
::vector<const A *,std::allocator<const A *> >::push_back(const A * const
&)' in
 function main()
Mi devo preoccupare?
Alla riga 19 il compilatore deve convertire B in A, ma mica passo
al vettore un valore temporaneo?
Inoltre l'idea di const A* const & mi fa un poco confondere.
Non riesco ad afferrare l'idea di una referenza ad un puntatore.
Grazie  Manlio Perillo

 Non riesco ad afferrare l'idea di una referenza ad un puntatore.
L'argomento di push_back e` sempre passato per constant reference
e non per valore.  Non c'e` sostanziale differenza di semantica,
e le prestazioni possono essere assai migliori se il tipo ha un
copy constructor costoso (ad esempio, un POD molto grosso).
Alex

 avvertirti che forse porta scalogna; cio` non viola lo standard.
Credo che questo derivi dal fatto che il BCC accetta di creare il
temporaneo anche se il parametro e' di tipo reference non const. In
questo caso, che mi risulta non conforme allo standard, una svista di
questo tipo puo' causare seri problemi.
 
Ciao,
Nicola

 questo tipo puo' causare seri problemi.
La scelta assai dubbia e` di dare il warning anche quando la
reference e` const.
Creare il temporaneo per una reference non-const non e` "una
scelta assai dubbia", e` un gravissimo errore di progetto del
compilatore.  Non vedo quali benefici possa mai dare, mentre
i problemi dovrebbero essere evidenti.  Borland e Microsoft
evidentemente fanno a gara anche sul piano di chi riesce a
portare ai propri compilatori le estensioni piu` assurde invece
di implementare l'ottimo standard (dispiace dire che anche gcc
non e` da meno in questa "gara al massacro", ahime`).
Alex
Newsgroup: it.comp.lang.c++
Titolo: Una policy comune contro gli OT...

Invece di cercare nuovi NG, perche´ non applichiamo una policy comune
contro gli OT?
Del tipo: se si vede un OT, e nessuno ha fatto un followup, si
risponde quotando le parti principali del messaggio in crosspost con
il NG piu` adatto e impostando li` il followup, inviando anche via
e-mail che si tratta di un OT e che non deve essere postato li`. In
questo modo si dovrebbe risolvere un poco...
-- 
DGP85
http://daps.cjb.net/
Don't change the address.
No Binaries or HTML at this address.

questo modo si dovrebbe risolvere un poco...
E poi gli diamo anche una sculacciatina? 8)
Forse si fa prima a rispondergli---> "OT" cosi imparano a cercare i NG
corretti, d'altronde questo è un NG ad 'alta specializzazione', non
quello della Nutella.
Luc.

 d'altronde questo č un NG ad 'alta specializzazione',
Troppo Alta e troppo Specializzata... a prima occhiata non si capisce... i
it.comp.lang sono gruppi di discusioni in cui si parla di come realizare
una determinata cosa in un teterminato linguaggio ma spazziando su tutti
gli aspetti del linguaggio (in it.comp.lang.pascal si parla perfino di
DELPHI)... per questo io in passato mi sono spagliato rivolgendomi a
questo gruppo per quella DLL (che per vostra informazione ne esistono di
tre tipo: DOS, Win a 16Bit e Win a 32Bit) e di questo mi scuso...
se invece per caso fosse it.comp.lang.algorittimi.c++ la cosi si
ottimizerebbe un po'
--------------------------------------------------
 Just listen to teacher:
 "The only good Windows is an UnIstalled Windows"
--------------------------------------------------
 IL RAZZIATORE
 EMAIL: 
razzi...@usa.net
 WEB:   
http://www.geocities.com/il_razziatore/
 ICQ:   67552596
--------------------------------------------------

ottimizerebbe un po'
No, perche´ non si tratta neppure di algoritmi, poiche´ se si parla,
es. di algoritmi di wiping, si parlerebbe a livello troppo a contatto
con l'OS di provenienza.
Sarebbe da usare un robomoderatore che filtrasse DLL, Win32 ecc. ecc.
P.S.: prima della firma usa due trattini e uno spazio per
l'identificazione di firma, grazie.


corretti, d'altronde questo è un NG ad 'alta specializzazione'
'nsomma... avete mai provato a seguire comp.lang.c++ (quello moderato
per intenderci)?
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: [?]Sito comune

Ciao a tutti, sono nuovo del NG, non sono riuscito a trovare delle FAQ
cosi' chiedo a voi: Io per lavoro sono costretto ad usare il visual
basic anche se sono nato come programmatore c. Ho letto quindi
saltuariamente il NG parallelo a questo: it.comp.lang.visual-basic e
ho nontato che la hanno creato un bel sito comune al quale fare
riferimento per trovare documentazione, sorgenti, eseguibili free
eccetera. Esiste anche per questo NG qualcosa di analogo? In piu' di
la usano anteporre delle [tag] standard al soggetto del messaggio per
far capire meglio e a prima vista il contenuto tipo [?] per una
domanda, [?2] per una domanda posta per la seconda volta [MANIFESTO]
per messaggi che propongono modifiche al manifesto e cosi' via. Io
l'ho trovato interessante, esiste anche qui qualcosa di analogo?
Grazie per l'attenzione e saluti.
manuel 'fmf' ferrero

 esiste anche qui qualcosa di analogo?
No. Siamo troppo impegnati a lottare contro gli off-topic. :-) :-(
EMG

No. Siamo troppo impegnati a lottare contro gli off-topic. :-) :-(
Be', il sistema dei tag potrebbe essere un buon modo per sconfiggere
gli off topic.
mnuel 'fmf' ferrero

Newsgroup: it.comp.lang.c++
Titolo: Dimensioni HD ?

Salve sono un neoprogrammatore Windows (uso il compilatore Borland C++
3.11)
ed ho il seguente problema : volendo testare in un mio programma lo spazio
disponibile sull'Hard-Disk , ho usato la funzione _dos_getdiskfree che ,pur
funzionando bene con i dischetti da 1.44 Mb , usata sull'HD da risultati
sbagliati. Qualcuno sa darmi dei chiarimenti ?
Ringrazio anticipatamente
     		               Guido Anselmi.

guido anselmi (
gu...@medianetis.it
) wrote:
: Salve sono un neoprogrammatore Windows (uso il compilatore Borland C++

Probabilmente l'errore e` causato dal fatto che la funzione restituisce
un  tipo che non e` capace di memorizzare il numero corretto (es. unsigned
anzicche` unsigned long). Prova a controllare attentamente  il prototipo
della funzione (io non posso aiutarti oltre non ho sottomano i miei
manuali  e comunque uso la versione 4.0)
Paolo

Newsgroup: it.comp.lang.c++
Titolo: versione per 486

Vorrei sapere se esiste (e dove la posso trovare) una qulasiasi versione di
c++ per 486.
Grazie, 
gse...@tiscalinet.it

c++ per 486.
Quasi tutti i compilatori C++ girano bene su un 486. Tra i compilatori free
trovi molto facilmente DJGPP, personalizzabile e multipiattaforma
(
www.delorie.com
), Borland C++ Compiler v.5.5 (
www.borland.com
), e DEV C++
(non mi ricordo esattamente il sito, prova a sbirciare in un qualsiasi
motore di ricerca).
Ciao
Domenico

Newsgroup: it.comp.lang.c++
Titolo: Aiuto Cestino

Devo fare un programma che effettui la cancellazione di files.
Vorrei spostarli nel cestino invece di cancellarli con il DeleteFile.
C'e' qualcuno che puo' aiutarmi???

 Vorrei spostarli nel cestino invece di cancellarli con il DeleteFile.
C'è una API che ha un parametro che decide se passare dal cestino o
cancellare direttamente.
Cercala, se proprio non la trovi provo io.
--
Alessandro Monti
Newsgroup: it.comp.lang.c++
Titolo: ms-dos

quando vado ad attivare il prompt di ms-dos mi da una scritta: il prompt dei
comandi è stato disattivato dall'amministratore
Premere un tasto per continuare...
Come devo fare per attivarlo, come sistema operativo ho windows XP.
grazie

Ciao,
Questo newsgroup si occupa del linguaggio di programmazione C++. Per
questo non e' il posto piu' adatto per porre domande come la tua. Ti
invito a cercare un gruppo il cui argomento sia piu' rispondente alle
tue esigenze. Avrai maggior probabilita' di risolvere il tuo problema ed
eviterai perdite di tempo a chi consulta it.comp.lang.c++ .
Grazie,
Nicola Musatti


Devi iniziare da molto molto lontano, leggiti il manifesto del NG e un po'
di netiquete. 
poi prendi un bel respiro e spegni il computer.
P.S.:scusate anche questo mio messaggio OT ma il tizio me lo ritrovo in tutti
i NG che scarico e ora mi sono scocciato

Newsgroup: it.comp.lang.c++
Titolo: Visual C++ tutorial

Sapete se esiste in rete un tutorial sulla programmazione in Windows95 che
sia possibilmente consultabile off-line?
Grazie.

Prova su
http://www.iftech.com/oltc/
e' un po' che non lo guardo, ma all'inizio mi ha aiutato molto.
CM
Newsgroup: it.comp.lang.c++
Titolo: [?] Convertire da BMP a JPG

Nessuno ha una funzione per convertire da BMP a JPG in c o c++
Grazie
Ciao
--
Timothy Redaelli

Nessuno ha una funzione per convertire da BMP a JPG in c o c++
Una funzione???
Si tratta di fare una codifica, e JPG non è nemmeno semplicissimo come
sistema di codifica, percui ti conviene cercare delle librerie gia fatte
e cmq non qui visto che qui si parla di C++ standard.
Sui ng relativi al sistema operativo che usi potresti avere più successo.
-- 
  _  _ >>Now on Linux<<  _     || ICQ number.................Non lo uso
 | \| |___ _____ ___ ___|_|___ || Home-Page ................Non ce l'ho
 | .` | -_|     | -_|_ -| |_ -||| E-Mail................Non l'avrai mai
 |_|\_|___|_|_|_|___|___|_|___||| Un Nemesis che ha pochi e-contatti ;)

Newsgroup: it.comp.lang.c++
Titolo: C++ Builder

Ciao!!!
Ho iniziato a programmare in C++ Builder (la prima versione) da poco,
vorrei sapere
se c'e qualcuno che mi potesse aiutare....i problemi sono:
1) Come fare per copiare il contenuto di un campo di database
selezionato in una DBComboBox in una variabile???
2) Como fare per aggiornare una DBComboBox apertando un SpeedButton in
una'altra form??
3) Come fare un funzione che controle un Richedit, nel quale quando
qualcuno digite una parola X nel Richedit questa cambi colore???
Lo so che ho spiegato tutto molto male, ma io non sono italiano,
quindi......
Grazie
by BBnW

1) Come fare per copiare il contenuto di un campo di database
selezionato in una DBComboBox in una variabile???
Sicuramente al DBComboBox e' abbinato un campo della tabella del tuo
database (DataField)
quindi devi fare:
variabile = Table->FieldByName("NOMECAMPO")->Value;
2) Como fare per aggiornare una DBComboBox apertando un SpeedButton in
una'altra form??
Questa non mi e' chiara... un campo data-aware si aggiorna automaticamente
modificando il valore nella tabella del database, cioe' il contrario di
prima:
Table->FieldByName("NOMECAMPO")->Value = nuovo_valore;
3) Come fare un funzione che controle un Richedit, nel quale quando
qualcuno digite una parola X nel Richedit questa cambi colore???
Questa tecnica si chiama "sintax highlighting" ed e' discretamente complessa
e certamente non descrivibile in poche righe :-(
Ciao.
--
Stefano Tempesta
PC Service Software
http://www.tempesta.cc.st
ste...@pcs-online.it

 e certamente non descrivibile in poche righe :-(
cerchero un tutorial nella rete........grazie comunque...almeno adesso
so como si chiama....8-)
by BBnW
bb...@usa.net
 oppure  
bb...@graffiti.net
-----------------------------
Visitate questo sito:
www.notut.org
-----------------------------
Newsgroup: it.comp.lang.c++
Titolo: gioco 2d

buongiorno
qualcuno per caso sa come fare per gestire la grafica per creare un gioco
2d, diciamo un paltform?
c'entra la graph.h?
ciao Valerio

c'entra la graph.h?
Il C++ non ne sa niente di grafica e la scelta di cosa usare dipende
dalla piattaforma per cui sviluppi (dos, win32, linux...).
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di it.comp.lang (per i linguaggi di
programmazione senza un gruppo apposito e per i confronti fra i
linguaggi) partecipa alla discussione sul manifesto su it.news.gruppi.

Newsgroup: it.comp.lang.c++
Titolo: Leggere contenuto file ZIP

E' possibile leggere il contenuto di un file zip senza unzipparlo?
In pratica avere la lista dei files in esso contenuti.
Grazie

 In pratica avere la lista dei files in esso contenuti.
controlla la libreria gzip...
puoi anche utilizzare il codice al suo interno

Newsgroup: it.comp.lang.c++
Titolo: Presentazione più d omanda ("cronometra re" un programma)

Salve, sono Franco e per motivi di studio (faccio ing. informatica) mi
diletto a programmare in c++ (potevo scegliere io quale linguaggio
usare...sono stato bravo vero? :PP).
Ora un mio problema: il prof vuole misura i tempi di esecuzione dei
programmi.
Ora io pensavo di fare così: prendo il tempo dell'orologio di sistema
all'inizio, lo prendo alla fine, e sottraggo (vabbhè, ci sarà qualche
conversione in mezzo).
Però non so quali comandi usare... potreste aiutarmi o indicarmi dove
posso trovare qualche soluzione?
Tra l'altro: l'orologio di sistema che precisione ha? millisecondi?
microsecondi?
Grazie mille :)
Franco

 microsecondi?
vedi sopra.
se invece vuoi qualcosa di + sfizioso, ogni sistema operativo ha i suoi 
timer di precisione, e ti rimando sui relativi NG.
Altrimenti, su intel pentium o superiore, ed equivalenti, puoi usare 
l'istruzione assembler rdtsc, ma devi conoscere il clock del processore 
ecco un esempio (per g++ e derivati)
#include <cstdio>
#define CLOCK 857639000L // athlon 850 MHz
unsigned long long asmclock(){  // intero a 64 bit senza segno
 asm volatile("rdtsc");
}
long double microsec(void) {
  return (long double)asmclock()/((long double)CLOCK/1000000.);
}
int main(){
   long double start, end;
   int i;
   start = microsec();
 
   int a[100]={0};
   for (int i = 0; i < 10000000; ++i)
      a[i%100]+=i;   
   end=microsec();
   printf("%.3llf microsec \n", end - start);
   return 0;
}
compilato con -O2 (di piu' ti riposiziona il codice asm e non va piu' 
bene)
[enrico@notebook]$ ./msec
111553.005 microsec 

 ha esternato:
Grazie mille, mi sei stato di grande aiuto! :)))
Franco
Newsgroup: it.comp.lang.c++
Titolo: Cancellare lo schermo con un determinato colore

Dopo aver inizializzato la grafica MCGA, provo una riga di comando trovata su di una 
guida, la quale dovrebbe cancellare lo schermo di un certo colore, eccone un prototio:
#include <mem.h>
memset(vga, col,0xffff); // 'vga' è un puntatore all'indirizzo 0xa000, mentre 'col' è un 
intero indicante il colore con cui si riempirà lo schermo
dopo aver letto ciò scrivo le seguenti righe sul mio compilatore Borland turbo c++ v3.0:
#include <mem.h>
main() {
_AX = 0x0013;                          // inizializzo 
geninterrupt (0x10);                  // la grafica MCGA
memset(0xa000, 13, 0xffff);   // provo a cancellare lo schermo del colore 13(viola) come                            
//                                                illustrato nella guida
}
Il compilatore risponde con un errore sulla riga della funzione Memset, come mai????

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

 Il compilatore risponde con un errore sulla riga della funzione Memset, come mai????
Perche` memset si aspetta un void* come primo parametro,
e non esiste nessuna conversione implicita da intero a
void*.
Puoi provare con
   memset((void*)0xa000, 13, 0xffff);
(Anche se passare un indirizzo assoluto non rende il tuo
programma un capolavoro dal punto di vista della
portabilita`)
-- 
Danilo Piazzalunga
Linux Registered User #245762 at 
http://counter.li.org
mailto:
leo-...@ibero.it

 ha scritto nel messaggio
news:1103_10...@powernews.libero.it...

La funzione Memset è nella libreria dos.h, basta che meti anche #include
<dos.h>
Newsgroup: it.comp.lang.c++
Titolo: Domanda veloce su int64

Mi chiedo se in C++ esiste una libreria standard dove sono definiti tipi 
di dati interi dalla dimensione prefissata , mi pare che in C vi fossero 
int64 int32 etc...
Non ricordo pero' se fosse grazie ad una libreria standard e comunque 
temo che in C++ il nome della libreia sia diverso.
Mi basta una risposta telgrafica... il nome della libreia.
Grazie a tutti

Boost.
Ciao,
Nicola

 pare che in C vi fossero int64 int32 etc...
Non fà ancora officialemente partite di C++, ma il <stdint.h> di
C sarà certamente incorporato nella prossima versione di C++. È
già presente in molte implementazioni.
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34

 
Interessante, Boost e' stato citato molte volte, sapresti dirmi 
all'interno di Boost quale libreria include esattamente questi tipi di 
dato...
googlo  un poco e vedo se risolvo, in caso posto la soluzione.

 
quindi con il gcc facendo
#include<stdint.h> o #include<cstint.h> o #include<cstdint> risolvo subito??
Provo come un razzo...
Grazie

Fabiano ha scritto:

Ecco da un esempio
#define __STDC_CONSTANT_MACROS
#include <cassert>
#include <iostream>
#include <boost/cstdint.hpp>
...
int64_t e derivati sono definiti in abbundanzia,
grazie
Provo a vedere anche altre soluzioni alternative.

Fabiano ha scritto:

Contro ogni mia aspettativa funziona facendo:
#include <stdint.h>
che cosa strana .. una inclusione del genere quali problemi puo' causare 
all'interno di un programma C++, posso usare su questi tipi int32_t per 
esempio gli operatori >> <<.
Io pongo la domanda per pubblica utilità oltr che per curiosità ma 
adesso vado subito a provare.
Grazie ancora Kanze

kanze ha scritto:

Altra domanda ..con una inclusione del genere
#include <stdint.h>
i tipi int32..int64 risultano appartenti al namespace standard ( mi pare 
di di ma resta un dubbio marginale al riguardo)

 Grazie ancora Kanze
Dai test preliminari sembra funzionare tutto :-p
  aspetto consigli di fino....
Newsgroup: it.comp.lang.c++
Titolo: Imporre l'ordine di esecuzione dei distruttori

Ciao a tutti.
Sapete se e come č possibile dare un ordine di esecuzione ai
distruttori dei membri di una classe?
Per esempio, supponiamo
class Pizza
{
// ...
private:
	Pomodoro pom;
	Mozzarella moz;
};
Ora, si dŕ il caso che sia Mozzarella che Pomodoro abbiano come dato
membro un puntatore a un altro oggetto, di tipo Lipidi, per dire, che
č *condiviso* da entrambi.
Il problema č che, all'atto della distruzione di Pizza, devo
effettuare il delete in un solo distruttore, o quello di Pomodoro, o
quello di Mozzarella, giusto? Diciamo che lo faccio fare a
~Mozzarella()
Si dŕ inoltre il caso che il distruttore ~Pomodoro() debba chiamare un
metodo dell'oggetto di classe Lipidi (se serve fornisco dettagli, e
vediamo se si puň evitare), ed č quindi opportuno che questo
distruttore ~Pomodoro() venga invocato *prima* di ~Mozzarella(),
giusto?
E' possibile? E se sě, come?
Grazie mille, giulio
Per favore togliete "!RemoveMe!" dall'indirizzo per rispondere via email
Please remove "!RemoveMe!" from the address to email me

 E' possibile? E se sì, come?
Se vuoi che un membro pom venga distrutto prima di un membro
moz, abbi, nella classe che li contiene, la dichiarazione di moz
prima di quella di pom.  Cosi`, moz verra` costruito prima e
distrutto dopo dell'altro.
Alex
Newsgroup: it.comp.lang.c++
Titolo: help, funzione di acquisizione double da file

devo fare un paio di funzioni che gestiscano il salvataggio dei dati su
file.
la funzione "salva",  che mi consenta di conservare su file i seguenti dati:
due stringhe. (nome, codice)
una serie di dati di bilancio (es. data, qualche double corrispondente a
prezzi e qualche intero corrispondenti a quantità).
la funzione "carica", che legga un file scritto da "salva" e carichi tutti i
dati contenuti in maniera opportuna.
qual'è il metodo che si utilizza di solito per fare questo tipo di
operazioni?
dove posso trovare qualche listato che mi possa aiutare?
c'è qualche tutorial che mi insegni a fare questo?
grazie
Giulio

 c'è qualche tutorial che mi insegni a fare questo?
io di solito faccio una cosa del genere
#include <fstream>
#include <string>
#include <vector>
struct articolo{
  std::string nome;
  float prezzo;
  int quantita;
};
std::ostream& operator << (ostream& os, const articolo& a){ 
  return os << a.nome << std::dec << a.prezzo << a.quantita;
}
struct dati {
  std::string a;
  std::string b;
  std::string data;
  std::vector<articolo> magazzino;
};
std::ostream& operator << (ostream& os, const dati& d){ 
  os << d.a << d.b << d.data; 
  for (unsigned long i = 0; i < d.magazzino.length(); i++)
    os << d.magazzino[i];
  return os;
}
void salva(const std::string& file, const dati& d){
  std::ofstream output(file.cstr());
  if(!output)
    std::cerr << "Errore salvando il file" << std::endl;
  output << d;
}
 
per i tutorial, se sai l'inglese, leggi Thinking in C++ di bruce eckel, 
lo trovi su internet con un motore di ricerca qualunque

bello questo, molto elegante e pulito.
ho bisogno anche di quache funzioncina per caricare i dati salvati con
questo metodo.
come posso farla???
grazie
Giulio
PS. Podda? Sardu sese? Deo so nugoresu.

 PS. Podda? Sardu sese? Deo so nugoresu.
sono sardo, ma "emigrato"

Newsgroup: it.comp.lang.c++
Titolo: general protection rror

ciao a tutti , ho un problema ogni volta he faccio partire un programe che
ho nscritto mi si apre la finstra normale e mi dice general protection
error. anch con i programmi che avevo scritto prima e che andavano vi prego
aiutatemi grazie ciao

Punker ha scritto...

Hai per caso definito un array di 10 elementi e tenti di inserirne 20???
8)
-- 
Luc.



Aiutarti senza aver visto nemmeno una riga del tuo programma?
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----
Newsgroup: it.comp.lang.c++
Titolo: Programmare la soundblaster

Ciao a tutti,
sono un nuovo utente del newsgroup che, fino ad oggi, si è limitato a
leggere i post di voialtri. Io avrei un problema e spero che qualcuno di
voi lo abbia già affrontato: devo programmare la MPU, ovvero l'uscita
MIDI della soundblaster. Il mio programma dovrebbe fare questo: suonare
delle note scelte arbitrariamente da me e non provenienti da un file
MIDI. Se qualcuno di voi ha già affrontato il problema e sa dove
scaricare delle librerie che semplifichino il lavoro, gliene sarei
infinitamente grato.
Ciao a tutti.
--
Sm3P---------------------------------------------
"Ninetta mia crepare di maggio, ci vuole tanto
troppo coraggio, Ninetta bella dritto all'inferno
avrei preferito andarci d'inverno"
Sent via Deja.com 
http://www.deja.com/
Share what you know. Learn what you don't.

In che sistema operativo? In Windows è facile. Se hai un help delle API,
guarda le MCI.
Ciao