mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Ereditare una classe da un Template

Ciao sono Davide. Questa è la prima volta che scrivo in questo gruppo.
Spero che qualcuno possa aiutarmi.
Quando lancio il programma sottostante in Visual C++, il compilatore
mi restituisce il seguente messaggio
d'errore:
^^^^^^^^^^^
Compiling...
News.cpp
c:\programmi\microsoft visual
studio\myprojects\ciclo_termodinamico\recupero_termico\news.cpp(40) :
fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 1786) 
         Please choose the Technical Support command on the Visual C++
         Help menu, or open the Technical Support help file for more
information
Command line warning D4028 : minimal rebuild failure, reverting to
normal build
Error executing cl.exe.
^^^^^^^^^^^^
Credo che sia dovuto ad un uso scorretto del costruttore, ma non
capisco dove sbaglio.
Tuttavia se all'interno del costruttore non definisco nulla e a fianco
della definizone scrivo {},
il programma funziona senza che debba definire il distruttore ed il
costruttore di copia.
Certo in tal caso commento la funzione dentro main perchè A e b non
sono più definiti.
Devo risolvere il problema perchè tale costruttore devo proprio
inizializzarlo.
//************************
//     PROGRAM
// ***********************
#include <iostream.h>
#include "Base.h"
#include "Models.h"
// La classe "DERIVED" deve essere una derivata della classe "BASE"
che a sua volta è un template
// della classe "Models". "BASE" e "Models" sono due classi definite
in altri due files.
template <class Models> class DERIVED: public BASE<Models> {
public:
    float *A; 
    float *B; 
 
    DERIVED(Models X): BASE<Models> (X) ; // {}
   ~DERIVED();
    DERIVED(const DERIVED<class Models> &obj);
    float  Product();
    // Calculates the product of two number.
};
// Constructor
//°°°°°°°°°°°°°°°°°°°
template <class Models>
DERIVED<Models>::DERIVED(Models X)
{
    A  = new float;
    B  = new float;
    *A = 100.0;
    *B = 50.0;
 
    cout << "Call to  constructor of  DERIVED \n";
}
// Constructor of copy
//°°°°°°°°°°°°°°°°°°°°°°
template <class Models>
 DERIVED<Models>::DERIVED(const DERIVED<class Models> &obj)
{
    A  = new float;
    B  = new float;
    *A = *obj.A;
    *B = *obj.B;
 
    cout << "Call to  constructor of copy of  DERIVED \n";
}
// Destructor
//°°°°°°°°°°°°°°°°°°°
template <class Models> DERIVED<Models>::~DERIVED()
{
    delete A;
    delete B;
 
    cout << "Call to  destructor  of  DERIVED \n";
}
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
template <class Models> 
float DERIVED<Models>::Product()
{
    float P;
    P = (*A)*(*B);
    return P;
}
// MAIN
int main()
{
    Models                   mod;
    BASE<Models>         bs(mod);
    DERIVED<Models>    der(mod);
    cout << der.Product();
}
//**********************************
Grazie,  Davide

 {
 template <class Models>
 DERIVED<Models>::DERIVED(Models X) : BASE<Models> (X)
 {   // ...
Max

 Max
Grazie  Max mi hai tirato fuori dai guai.
Sono un principiante, č da poco piů di  un mese che mi destreggio nei
labirinti del C++.
Grazie ancora.
Ciao, Davide
Newsgroup: it.comp.lang.c++
Titolo: Help: driver o DLL per schede di I/O in Win 95

ITIP "E. Fermi", Modena.
Siamo un gruppo di  insegnanti di sistemi di un Istituto tecnico e
abbiamo la necessita' di controllare una scheda di I/O di produzione
propria in ambiente Win 95. Come realizzare un driver o una DLL da
utilizzare in modo generico ??
L' ambiente di sviluppo di cui disponiamo e' il VC++ 5.0.
Grazie.
Paolo Santinelli, Giovanni Cavalli, Maurizio Manfredi.
E-mail 
fe...@mo.nettuno.it


Saluti,
Massimo

Newsgroup: it.comp.lang.c++
Titolo: Eliminazione file

Ciao a tutti.
Devo implementare in C una funzione che faccia la stessa cosa del comando
DOS  "del *.* ".
Per uccidere il file ci sono le funzioni remove o _unlink ma come faccio a
trovare il file ?
Premetto che a 32 bit esiste _findfirst, ma a me serve qualcosa a 16 bit ??
Qualche idea ??
Grazie.

...

Puoi utilizzare FindFirstFile e FindNextFile per scorrere tutti i files di
una directory.
Ricordati di utilizzare FindClose sull'handle che ti ha ritornato la
FindFirstFile.
---
Valter Minute
min...@fortech.it
 (the reply address of this message is invalid)
---
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://hotfiles.zdnet.com/cgi-bin/texis/swlib/hotfiles/getit.bin?fcode=000PZ
0
if you want, I can send you the (free) C++ source code.

FindFirstFile.
Purtroppo le funzioni indicate sono per WIN32, ma a me servono funzioni a 16
bit....
Grazie lo stesso

findfirst è una funzione del DOS, utilizzabile a 16 bit.
byebyte

...

I'm sorry, ho letto l'ultima frase al contrario :-)
Comunque _findfirst (o _dos_findfirst) ecc... sono disponibili anche a 16
bit (non ero sicuro che lo fossero a 32 ma, visto come avevo interpretato la
domanda...)


 wrote in message
news:77fb9u$bgf$1...@fe2.cs.interbusiness.it...


 Se non ricordo male tali funzioni erano anche a 16 bit
Scusate l'ignoranza - cosa e' una funzione a 16 bits?
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< 
DucaCr...@iol.it
 >>>>>>>>>>>>>>
*** C'è sempre un precipizio per ogniuno di noi
*** E' li che ci aspetta, prima o poi ci prenderà
*** Non è possibile evitarlo, è sciocco non vederlo
*** Intanto però, è giusto vivere.
                                               (M. La Neve)



Newsgroup: it.comp.lang.c++
Titolo: quesito sulle macro

Data la seguente definizione di macro,
#define SQUARE(x) ((x) * (x))
e la seguente chiamata,
int x=5;
iresult=SQUARE(x++);
il risultato, da quanto dice il mio libro, dovrebbe essere imprevedibile, e
da le seguenti possibili traduzioni:
iresult= 5*5;
o
iresult=5*6;
Ora io mi chiedo, il risultato 5*6 cosa c'entra? Non dovrebbe essere 6*6?
grazie per l'aiuto
--
San Vegeta from Hell
http://www.geocities.com/Area51/Dungeon/8436
(da visitare con un browser della Netscape)

Ora io mi chiedo, il risultato 5*6 cosa c'entra? Non dovrebbe essere 6*6?
No, se fai il lavoro del preprocessore e risolvi la macro ottieni
SQUARE(X++) diviene  (X++) * (X++)
L'operatore di post incremento prima restituisce il valore di X e
poi lo incrementa. Se il compilatore lavora come supposto nel
secondo caso il primo fattore della moltiplicazione viene valutato
a 5 e il secondo a 6 (perche` dopo la valutazione del primo
operando X==6).
Paolo
------------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  G: Per concludere, possiamo chiedervi di commentare
     l'attuale panorama informatico?
  I: /* l'attuale panorama informatico */
------------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: giochi 3d in c++

scusate un mio amico mi ha detto che scaricando un motore grafico da
internet e poi c++ si poteva creare un gioco 3d, devo saper programmare per
farlo??

farlo??
E' una battuta??
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

 wrote in message
7qdknp$fut$1...@serv1.iunet.it...


No...devi sapere programmare ECCOME!
Devi perdipiù studiarti il funzionamento del motore stesso per ottenere dei
primi risultati.
NON è facile...non è mica il Game's Factory!
Ciao by Tdx

Mi sai dire dove posso trovare il motore di cui parli .
        Grazie
/Gianni


Newsgroup: it.comp.lang.c++
Titolo: CGI CON C++

Salve a tutti,
sono nei casini perchè mi serve assolutamente un cgi, e io l'unico programma
che sò un un pò è il c++, vi prego aiutatemi
ENZO
E-Mail: 
enzo...@inwind.it
icq: 85990732
irc: ^KEnZo^

 
 
http://cgi.resourceindex.com/Programs_and_Scripts/C_and_C++/

 wrote in message
Pine.LNX.4.10.100090...@c64.comm2000.it...

Innanzi tutto grazie per la tua disponibilità;
esiste un sito simile in italiano ?
GRAZIE ANCORA
ENZO
Newsgroup: it.comp.lang.c++
Titolo: Sono davvero un neofita! #include?

Ho bisogno di includere <sstream> se scrivo
#include <sstream>
mi da un sacco di errori cosě come per 
iostream.se
 scrivo
#include <iostream>
per le altre librerie scrivevo
#include <iostream.h> e tutto funzionava.
Io uso visual studio 6.
Cosa si deve fare?
Volevo implementare l'esempio  di Matteo Ianeselli sulle date (del
12/04/2003 ore 13.50) ma ho appunto questo problema.
grazie per l'aiuto.
Max.
             (...che cerca di capirci qcs)

 ha scritto nel messaggio
news:b79kb2$nju$1...@lacerta.tiscalinet.it...


 using namespace std;
Beh, non e' proprio cosi'....
non sei obbligato a scrivere using namespace std; ma se non lo fai (e nei .h
e' meglio non farlo ad esempio), bisogna usare std::
Ad esempio:
std::cout << "Hello" << std::endl;
Tommy

 ha scritto nel messaggio
news:b79vao$qj4$1...@sparta.btinternet.com...


 }
A parte il fatto che dovrebbe essere
    int main() { ... }
e non void main(), mi pare che dovrebbe funzionare.
Sfortunatamente conosco poco VC++, ma non e` per caso stai sbagliando il 
tipo di applicazione da creare (chesso`, stai creando una GUI che 
richiede WinMain() invece di un'applicazione da console?)
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 ha scritto nel messaggio
news:b7a64g$s76$1...@news.flashnet.it...


 settare?
Senti, capisco che cercare d'indovinare la malattia senza vedere i
sintomi possa essere divertente, ma...
Che errori ti da il compilatore???? :-) Sai com'e', incomincio ad essere
in ansia e sono curioso di vedere come va a finire... :-)
Ciao
Gian Michele
P.S. scrivere due righe ti testo quotando le parti non rilevanti del
messaggio a cui hai risposto non e' una bella cosa. E' come telefonare
ad una stazione radio in diretta tenendo la propria radiolina accesa: si
genera un fischio fastidiosissimo... :-)

>sono curioso di vedere come va a finire... :-)
ho reistallato il visual ed ora ho eliminato gli errori: in compenso ho una
marea di warning che non comprendo. ...e sto facendo solo programmini...
Per maggiori chiarimenti rimando al post successivo.
Scusatemi  tutti per quanto sto rompendo ma il nostro professore non sa
spiegare (ed io sono anche un po' ottuso)...
Max
Newsgroup: it.comp.lang.c++
Titolo: array di classe

Ciao a tutti.
Ho copiato da un testo questa semplice classe che dovrebbe rappresentare un
punto su un piano cartesiano, mediante le coordinate x,y.
.
.
 
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <math.h> 
using namespace std;
class clsPoint
{
private:
  double x;
  double y;
public:
  void setX(double X);
  void setY(double Y);
  double getX(double X);
  double getY(double Y);
};
void clsPoint::setX(double X)
{x=X;};
void clsPoint::setY(double Y)
{y=Y;};
double clsPoint::getX(double X)
 X=x;
 return X;};
double clsPoint::getY(double Y)
{Y=y;
 return Y;};
Ora correi provare a dichiarare un vettore di classi punto, ed utilizzare le
funzioni di classi applicandole a questo vettore; in altre parole, vorrei
scrivere del codice simile:
vettore_clsPoint[0].setX(...);
vettore_clsPoint[0].getX(...);
.
Io ci ho provato, ma visualizzando con getX e getY i valori che ho tentato
di assegnare al vettore, ottengo dei risultati strani.
Qualcuno di voi mi può scrivere del codice adeguato, che provo a
confrontarlo col mio,e cerco di capire dove sbaglio?
Ciao e grazie,
ALberto.

 Ciao e grazie,
prego
-- 
"E' solo dopo aver perso tutto che siamo liberi di fare qualsiasi cosa."
"buuuhhhhhhhhhhrrrrrrr"

 le tue funzioni get*, IMHO, non hanno senso.
Non hanno senso di esistere, o non ha senso come le ho scritte?

 
non hanno senso come le hai scritte: con le get* leggi, con le set* 
scrivi, che senso ha passare dei parametri alle get* in questo caso?

Newsgroup: it.comp.lang.c++
Titolo: Classi template annidate

Salve sono uno sviluppatore alle prime armi e vorrei porre questa
domanda:
E' possibile fare una classe template che accetti tra i suoi elementi
oggetti di un'altra classe template ? Se si potreste indicarmi dove
reperire un esempio ?
Grazie a tutti in anticipo

 reperire un esempio ?
la risposta e` "si", anche se la domanda non e` molto chiara. Cosa 
intendi con "oggetto di una classe template"? A naso mi vengono in mente 
tre possibilita`:
1) La tua classe deve avere un metodo invocabile passando un oggetto di 
una qualsiasi istanza di uno specifico template; per risolvere devi 
usare un member template:
        class X {
        public:
                template<class T>
                void f( const std::vector<T>& );
        };
2) Vuoi istanziare di template passandogli come parametro una istanza di 
un'altro template; in questo caso non e` necessaria nessuna particolare 
feature:
        template<class T> class X { ... };
        ...
        X< std::vector<int> > x;
3) Vuoi istanziare un template passandogli come parametro un'altro 
template (*non* una specifica istanza del template); in questo caso devi 
utilizzare i "template template parameters":
        template< template<class> class Container >
        class X {
                Container<int> a;
                Container<double> b;
        };
        X< std::vector > x; // utilizza std::vector come container
        X< std::deque > y; // utilizza std::deque
Ho indovinato il tuo problema? Quale dei tre?
ciao Anto
-- 
Antonio Cuni, 20 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

Newsgroup: it.comp.lang.c++
Titolo: Aiuto o manuali

Su Inter.net di Luglio Agosto ho trovato la versione completa registrata in
inglese di Borland c ++ builder standard edition.
Vorrei sapere se gentilmente qualcuno sa indicarmi qualche sito di
riferimento per scaricare manuali o aiuti vari in italiano.
I libri costano una esagerazione.
Grazie a tutti.
Andrea
--
Posted from 
mta4.iol.it
 [195.210.91.154]
via Mailgate.ORG Server - 
http://www.mailgate.org

Ciao,
    trovi un'introduzione all'ambiente nell'area C/C++ di
www.programmazione.it
. Certo non è una guida completa ma sempre meglio di
nulla :-)
Marco Abis
http://www.programmazione.it
  il sito Italiano di riferimento per IT
ab...@programmazione.it

 wrote in message
7re25l$780$1...@pluto.sm.dsi.unimi.it...

Newsgroup: it.comp.lang.c++
Titolo: TreeView in stile explorer

    Qualcuno ha idea di come reperire le informazioni per costruire un
controllo TreeView come quello di explorer, cioe' con desktop, risorse di
rete, Cestino, Stampanti, etc... con le relative icone?
    L'unico programma di mia conoscenza che lo fa e' Corel Multimedia
Manager (e forse WinZip, ma credo che in quel caso abbia subclassato il
dialogo stanndard).
E' gradito ogni dipo di consiglio.
grazie,
    Al


Non pooi usere il controllo standard mettemdoci dentro le voci del file
system?
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

...


Su DEV di Giugno e Luglio c'e' un interessante articolo di Andrea Fasano che
spiega come realizzare un Gestione Risorse con C++Builder.
Brevemente, il progetto utilizza i componenti TreeView e ListView per
visualizzare drive, cartelle e file ed un ImageList per le icone. Inoltre
richiama le API GetLogicalDrives() e GetDriveType() per reperire
informazioni sulle unita' presenti nel computer e FindFirstFile() /
FindNextFile() per scorrere tutti i file all'interno di una cartella.
Sul sito 
www.infomedia.it
 puoi scaricarti i listati corrispondenti ai numeri
53 e 54 della rivista.
Per maggiori approfondimenti, sempre a disposizione, oppure puoi contattare
l'autore dell'articolo all'indirizzo 
fas...@programmers.net
.
Ciao.
--
Stefano Tempesta
s.tem...@usa.net
http://tempesta.freeweb.org
--------------------------------
<<< Think indipendent, cos' indipendent you can't be >>>


Newsgroup: it.comp.lang.c++
Titolo: Domanda su vector::erase(first, last)

Se first == last , mi lascia il vettore invariato, senza eliminare
alcun elemento?
Incredibile ma non riesco a trovarlo da nessuna parte.
Thx,
Pleg


La funzione erase rimuove tutti gli elementi compresi nell'intervallo 
[first, last).
Se first == last l'intervallo č vuoto e perciņ non rimuove alcun elemento.
Ciao.
-- 
http://www.econet-project.eu
Newsgroup: it.comp.lang.c++
Titolo: Autocomplete per CBuilder3 standard

Qualcuno mi sa indicare un add in Autocomplete (tu digiti il nome
dell'oggetto, e ti si fornisce una bella lista di proprietą e metodi,
durante la scrittura del codice?) per CBuilder3 Standard?
Se qualcuno sa dove č, o se lo č fatto per conto suo, me lo puņ far
sapere o avere?
Sono disposto anche a pagarlo (guarda un pņ).
Grazie.

 Sono disposto anche a pagarlo (guarda un pò).
Non credo che esista niente del genere per BCB3. Esiste invece di
serie in BCB4.
Saluti
Paolo

 > Sono disposto anche a pagarlo (guarda un pņ).


>Ma e' gia'disponibile la 4?
Oh yes!
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org

Ma e' gia'disponibile la 4?
Sě, da circa un mese. 
Info su 
www.borland.it
 o 
www.inprise.it

Newsgroup: it.comp.lang.c++
Titolo: Interfaccia con con cestino

Salve,
avrei bisogno di gestire da prog. l'inserimento di file nel cestino di
windows95. Vorrei sapere se esistono API specifiche o classi MFC.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

windows95. Vorrei sapere se esistono API specifiche o classi MFC.
Secondo me l'API piú semplice per fare quanto chiedi é la
SHFileOperation; le passi come unico argomenti il puntatore
a una struttura FILEOPSTRUCT, con i campi della quale
specifichi tutti i dettagli di quanto desideri.  Se chiedi un
delete che permetta un undo, in file specificati verranno
spostati nel cestino.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Sviluppo di programmi interattivi in C++

Vorrei il seguente concetto fosse chiaro a tutti gli utenti di questo 
newsgroup:
IL LINGUAGGIO C++ STANDARD NON SUPPORTA LO SVILUPPO DI PROGRAMMI 
INTERATTIVI.
Pertanto, per favore, smettetela di chiedere come si riceve l'input 
dalla tastiera, come si scrive sullo schermo, come si attende che 
trascorra un certo tempo o che avvenga un particolare evento.
D'altra parte il linguaggio C++ supporta l'accesso a librerie in grado 
di supportare la programmazione interattiva. Di tali librerie, alcune 
sono fornite con il sistema operativo, altre con particolari ambienti di 
sviluppo, altre sono sviluppate separatamente dagli ambienti di sviluppo 
ma supportano un solo ambiente di sviluppo, altre sono multipiattaforma. 
Tuttavia, sono tutte non standard. Pertanto, per fare un esempio, non 
c'e' risposta per una domanda come la seguente: "Come si fa in C++ a 
spostare il cursore in una console?"
Piuttosto si dovrebbe scrivere: "Come si fa a spostare il cursore in una 
console usando l'API di Windows" oppure "Come si fa a spostare il 
cursore in una console usando il compilatore Borland per DOS?"
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 INTERATTIVI.
Carlo, il problema e' che chi fa quelle domande non frequenta di solito il
NG, ma scrive la domanda quando ha bisogno, controlla (solo) le risposte
alla sua domanda per un paio di giorni e poi fino alla volta dopo non
seguira' piu' il NG.
In sostanza tali domande continueranno ad esserci perche' tali persone non
hanno letto il tuo messaggio.
E' triste ma e' cosi' :-(
Tommy

...

Per questo e' fondamentale non rispondere, ma indirizzare verso
newsgroup piu' adeguati. In questo modo ciascun maleducato si
limitera' ad un solo messaggio. Altrimenti prevarra' la pigrizia e
continuera' a inviare messaggi OT.
Ciao,
Nicola

 INTERATTIVI.
Dovresti postare il tuo messaggio regolarmente, diciamo una volta alla settimana :-)
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: develop video develop

Salve ragazzzzzi...
ho un piccolo quesito da porre...
Devo realizzare una applicazione che invia un output video su una
scheda
matrox digisuite... (premetto che sto meditando l'acquisto dell'sdk)
ma ... 
mi piacerebbe sapere se è possibile intefacciarsi a tale skeda anche
senza comprare l'sdk.. se si come si con quale architettura avviene
tutto ciò?.....
(sono graditi anche i links)
:P
That's All Folks

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

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ 3.1

Qualcuno sa dove posso scaricare liberamente il Borland C++ 3.1?
Grazie

La Borland ha da qualche parte sul proprio sito un posto da dove si
possono scaricare vecchi prodotti. Cerca a partire da 
www.borland.com
 .
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Funzione qsort

Chi mi puo far vedere tramite un
piccolo listato SEMPLICE
come funziona il riordino di un array tramite
il qsort..
Es:
--------------------------------------
Ho un array di 100 elementi interi...
inseriti in modo non ordinati...
Come faccio tramite il qsort a metterli in ordine da 1 a 100
oppure da 100 a 1..
---------------------------------------


http://www.autoobjects.com/Home/Teaching/CmpE_126/CmpE_126_Lectures/Sortings/sortings.html#Quick_Sort


#include<stdlib.h>
int A[100];
// per l'ordinamento crescente..
// in generale una funzione che
// ritorna un int > 0 se *x > *y
// o un int < 0 se *x < *y
// o 0 se *x == *y
int Comp(const void *x, const void *y)
{
    return
     *(int *)x - *(int *)y;
}
int main()
{
   // .............................
   for (i=0; i<100; i++) A[i]=lrand48();
   qsort(A, 100, sizeof(int), Comp);
   // ........................
   return 0;
}
Comunque, (cosa che un tempo avrei pensato impossibile, visto
che io per abitudine uso preferibilmente il C puro)
ti consiglio di usare la funzione sort della STL che
su alcuni sistemi (quello dove compilo io!) e' 3 volte
piu' veloce della qsort. (in effetti a pensarci
e' abbastanza ovvio...)
cioe'
std::sort(A+0,A+100);
per ordinare in modo crescente.
Per gli altri ordinamenti e' lievemente piu'
complicato,
ciao,
g.

Newsgroup: it.comp.lang.c++
Titolo: Interazione fra oggetti prodotti da compilatori diversi [NO name mangling]

Solita vecchia storia immagino.
[Win32]
Ho una libreria che gestisce una serie di plugin esterni, DLL linkate 
dinamicamente in modo esplicito.
Ogni plugin implementa un'interfaccia pura, ad esempio
class CIf
{
	virtual Method(SomeDataType) = 0;
}
La libreria (Kernel) fornisce un metodo di registrazione per cui la DLL può 
aggiungere una nuova istanza della sua implementazione alla mappa generale.
SomeDataType é un tipo complesso in C++.
La registrazione funziona correttamente, ma quando si tratta per il Kernel di 
chiamare Method() tutto scoppia.
Il programma principale é compilato con visual studio 8, la dll con mingw-g++ 
3.4.5, entrambe fanno riferimento alla stessa stlport 5.0.2.
Presumo che il problema sia da imputare alla diversa virtual table.
Spero di essere stato chiaro. Se qualcuno ha dei suggerimenti é il benvenuto, 
altrimenti mi sa che é un design flaw che non mi permette l'uso di compilatori 
diversi...
-- 
         Giuseppe "Cowo" Corbelli ~\/~ My software: 
http://cowo.yoda2000.net
-<! Non c'e' niente da dire in proposito. Tutto quello che uno deve fare e'
   colpire i tasti giusti al momento giusto, e lo strumento suona da solo. !>-
                                 J.S. Bach

 diversi...
Dal momento che i due compilatori non implementano la stessa ABI non
hai alcuna speranza, se non quella di avvolgere l'intero meccanismo di
plugin in un interfaccia in C. Triste ma vero.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Proprietà StatusBar->Panels[0]->Text

void __fastcall TForm1::OnHint(TObject *Sender)
{
// Con la proprietą del componente StatusBar->SimplePanel=True metto:
// StatusBar->SimpleText=Application->Hint;
//
// E funziona... invece col pannello multiplo (con 0 che indica la prima
sezione di StatusBar
StatusBar->Panels[0]->Text=Application->Hint;
}
Mi da questo errore... perchč?
[C++Error] Main.cpp(20): Pointer to structure required on left side of ->
or ->*.
Gli esempi nell'help sono quelli.
BoH!!

Wayl <Wa...@iname.com.nospam> wrote in message
7nag6o$57b$2...@aquila.tiscalinet.it...

L'errore dovrebbe essere questo:
StatusBar->Panels[0]->Text=Application->OnHint;

StatusBar->Panels[0]->Text=Application->OnHint;
Ok, ma dagli anche la soluzione, no?
StatusBar->Panels->Items[0]->Text = Application->OnHint;
--
Stefano Tempesta
PC Service Software
http://www.tempesta.cc.st
s.tem...@pcs-online.it


OOOppppssss! Non me ne ero accorto!
Sorry!

...

Che poi è StatusBar->Panels->Items[0]->Text=Application->Hint;
Grazie mille,siete stati gentilissimi... ho raccolto il suggerimento di
Bleed (il manuale :) e ho risolto tutti i problemi, ci sto appresso da meno
di una settimana al c++b ma è uno spasso,lo consiglio a chiunque!!
Ciao!

 Ciao!
Ah...sì? Che manuale hai preso?

Ah...sì? Che manuale hai preso?
Quello di Kent Reisdorph se l'ho scritto bene, una delle guide complete
della Apogeo / sams pub... cavolo oggigiorno è una pacchia programmare, e io
ancora con librerie e oggetti del turbo pascal, se avessi un pò di tempo
libero avrei già finito di tradurre il mio programma di intelligenza
artificiale. (** messaggio promozionale **)
Ottimo consiglio, ciao!

Newsgroup: it.comp.lang.c++
Titolo: Help

Esistono disassemblatori su internet, se si, dove. Grazie
fort...@freemail.it

Hmm, per quelle poche nozioni di diritto informatico che ho, mi pare
illegale disassemblare programmi altrui...
Qualcuno sa se mi sbaglio?
Diego Pettenň

 Qualcuno sa se mi sbaglio?
A meno di casi eccezionali, è illegale.
--
Alessandro Monti
Newsgroup: it.comp.lang.c++
Titolo: Manuali c++

Ciao a tutti
ho trovato su internet dei manuali di c++, ma purtroppo sono in inglese.
Qualcuno di voi mi sa' dire dove posso trovare dei documenti o dei manuali
nella rete, in italiano?
Che funzione si usa per pilotare la stampante in c++, esiste qualche
libreria specifica?
Grazie
Enea
en...@interplanet.it
home page  
http://www.aspide.it/freeweb/enea/

 
L'unica cosa che ho trovato, per caso, in italiano e' all'indirizzo:
http://www.geocities.com/Tokyo/4846/chome.html
Ciao
Mingh

Newsgroup: it.comp.lang.c++
Titolo: Notifica di un evento

Ciao a tutti,
	sto provando due compilatori c++, Microsoft Visual C++
	e C++ Builder,con qualche semplice programma per testarne
	il comportamento, ma con uno dei due ho trovato
	qualche banale difficolta'.
	Con il MSVC++,ho un CEdit, e dovrei far sapere al
	parent che e' stato premuto un pulsante, ovvero
	debbo far richiamare una funzione del parent
	dal contol.
	Quando a run time viene chiamata la funzione
	onKeyDown(...) dovrebbe richiamare la mia 
	funzione sul parent, ma non so' come fare 
	questo linking.
	Con il Builder viene fatta automaticamente, mi 
	pare alquanto strano che il MSVC++ non preveda
	una cosa del genere.
	Sapete se sono io che non ho trovato come fare, 
	o davvero non esiste questa possibilita' ed in 
	tal caso come debbo fare per fare richiamare la
	mia funzione a run-time?
	Vi ringrazio anticipatamente per il contributo.
KL

	questo linking.
Di solito non c'e' bisogno di fare cose strane, l'edit control invia
automaticamente il messaggio di EN_CHANGE alla finestra parent quando
viene modificato il suo contenuto, basta intercettare quello. Se
invece ti serve davvero di chiamare un funzione del parent questo puo'
essere fatto in molti modi diversi, dipente dal contesto in cui viene
usato l'edit control.
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: Nascondere il task button del proprio comando.

Appunto, come posso fare a nasconderlo della barra delle applicazioni, come
fanno programmi quali il getright ecc.. (io uso BCB, ma anche Delphi o le
API vanno bene)
Grazie
Riccardo

...




> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< 
DucaCr...@iol.it
 >>>>>>>>>>>>>>
*** All'inizio gli esseri umani erano ermafroditi e Dio li spaccò in due
metà
*** che da allora vagano per il mondo cercandosi.
*** L'amore è la metà perduta di noi stessi.
                                               (Platone)

propria finestra con qualche flag particolare (ad esempio le dialog box non
Usare WS_EX_TOOLWINDOW nella CreateWindowEx (ma cambia
anche leggermente lo stile della caption).
Alex

 API vanno bene)
Per nascondere il task button di una applicazione, mantenendo visibile il Form
principale, in BCB si puo` procedere in questo modo:
1) Nel gestore dell'evento Show inserire questa istruzione:
void __fastcall TForm1::FormShow(TObject *Sender)
{
    ShowWindow(Application->Handle, SW_HIDE);
}
La chiamata API ShowWindow col flag SW_HIDE fa in modo che la window che
rappresenta l'applicazione (che NON e` il Form principale, e che normalmente e`
visualizzata come icona), venga nascosta
2) Disabilitare, a design time, il pulsante "minimize" sulla barra del titolo,
mettendo a false il flag biMinimize della proprieta` BorderIcons (da codice
sarebbe Form1->BorderIcons  >> biMinimize)
Senza questo accorgimento, il task button risulterebbe di nuovo visibile non
appena il form venisse minimizzato.
Saluti
Paolo

Newsgroup: it.comp.lang.c++
Titolo: Puntatore a vettore di caratteri

Definisco le seguenti variabili:
s: array di caratteri
ptrs: puntatore ad array di caratteri:
    char s[] = {'A', 'B', 'C', 'D'};
    char* ptrs[];
 
Dev C++ mi da' 
"array size missing in ptrs"
Nella definizione di una variabile puntatore
ad un array di caratteri bisogna anche
definire la dimensione?
Grazie
Ciao



Si, il compilatore ha bisogno di conoscere la dimensione dell'array
puntato...altrimenti come faresti a fare ptrs++? Come fa a sapere di
quanto deve incrementare?

    char* ptrs[];
e' la dichiarazione di un array _di_puntatori_ a carattere,
La dichiarazione e l'assegnamento di un puntatore a caratteri e'
	char * ptrs = s; // punta al primo elem dell'array
piu' esplicito, ma identico:
	char * ptrs = &s[0];
-- 
Ciao,
Andrea (uno dei tanti)
Newsgroup: it.comp.lang.c++
Titolo: libro

ciao a tutti, 
che libro mi consigliate per poter imparare a programmare in c++ da 0 ??
grazie
ciao
mat

 che libro mi consigliate per poter imparare a programmare in c++ da 0 ??
Conosci già altri linguaggi? A che livello?
-- 
Luc.

Deitel & Deitel - C++ Fondamenti di Programmazione
Edito da Apogeo
che fornisce anche alcune basi di programmazione generale se sei proprio
newbye di programmazione. Comunque io l'ho trovato un ottimo testo. Questo
Fornisce le basi di C++ mentre per gli argomenti avanzati esiste un secndo
volume "Tecniche Avanzate"

 a écrit dans le message news:
Xns9D428D548D43b...@195.31.190.132...

In inglese ti consiglio di scaricare da qua:
http://www.mindview.net/Books/DownloadSites
 ("Thinking in C++" di Bruce
(Lee) Eckel)
In italiano ti consiglio di andare su 
www.programmazione.it
 dove trovi buone
guide per cominciare.
Ti sconsiglio vivamente libri di Schildt (errati) e anche quelli di
Stroustrup il padre del C++ (troppo astrusi per un principiante).
In seguito potrai passare al libro di Lippman-Lajoie "C++ primers",
E continua a seguire il newsgroup nel quale a parte qualche futile
discussione, si possono trovare buoni consigli.
Ti ricordo che i libri citati parlano di C++ standard, con il quale potrai
fare programmi portatili che potranno girare sotto Linux, Dos Windows, Mac
ecc.. ma non potrai fare della grafica, aprire finestre di windows o sparare
dati alla seriale o alla parallela o gestire processi di rete o databases.
Tutto cio' va oltre al C++ standard, ma per cominciare devi partire da qua
Maurus

Luc <XXX...@katamail.comXXX> wrote in 
news:MPG.1703fe641...@tornado.fastwebnet.it
:

conosco html, php, mysql

 conosco html, php, mysql
Intendevo se conoscevi 'veri' linguaggi (C,Pascal,Basic ecc...) 
-- 
Luc.

 Intendevo se conoscevi 'veri' linguaggi (C,Pascal,Basic ecc...)
va bene che HTML non è proprio un linguaggio
ma php e mysql non lo sono?

ma php e mysql non lo sono?
MySQL non è un linguaggio ma un RDMBS che
include anche una versione dell'SQL, Structured Query
Language, come dice la denominazione è un linguaggio per
operare interrogazioni, ovviamente relativamente a dati
contenuti in un database relazionale
PHP = è un linguaggio di scripting lato server
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
Redattore di HiT
http://hit.edengames.net
Newsgroup: it.comp.lang.c++
Titolo: overloading operatori << ?

Ciao a tux, spero che qualcuno possa aiutarmi ma non capisco l'errore
che viene generato ...\Data.cpp syntax error before `&' token
dipende forse da overloading dell' operatore << ?   
//Data.h
#include<iostream>
class Data
{
friend ostream& operator<<(ostream& , Data&);
public: 
   Data();
   Data(int,int,int);
   int Giorno();
   int Mese();
   int Anno();
private:
   int giorno,mese, anno;
};
// Data.cpp
#include"Data.h"
int Data :: Giorno(){return giorno;}
int Data :: Mese(){return mese;}
int Data :: Anno(){return anno;}
 ostream& operator<<(ostream& os,Data& d)
{ os<< d.giorno<<" / "<<d.mese<<"/ "<<d.anno;
  return os;  
} 
p.s. uso dev-c++ 4.9.8.5

 friend ostream& operator<<(ostream& , Data&);
ostream non e` definito nel namespace globale, quindi il compilatore
segnala l'errore "prima di `&'".
Soluzione: scrivere std::ostream
         Mauro
Newsgroup: it.comp.lang.c++
Titolo: problemi con enum

salve!
dunque... ho un :
enum Tipo{
uno,
due,
tre,
quattro
};
tipo var1;
e una stringa (per la precisione un CString di vc++) var2= "tre";
il problema è: come faccio a confrontare ( e quindi a ritornare un numero)
var1 e var2?
cioè: partendo da una striga
aa"tre";
devo arrivare avere un
Tipo variabile;
che sia di valore 3;
c++ mi dice che non si possono confrontare.
si potrà in qualche modo...
2 domanda
in javascript esite eval();
qui non ho ben capito come funziona : Debugger.Evaluate ("var=1").( che mi
pare d'aver capito essere solo di "VISUAL"c++, o sbaglio?)
viasto devo aggiornare 20 richedit, volevo creare un loop, qualcuno mi
illumina?
--
    --------------
   ----------------         
dodi...@tiscalinet.it
  ---------|--------
   --------|-------            ICQ: 36959563
    ------_|------
       - (_)# -

 illumina?
Metti i "20 richedit" (o riferimenti ad essi, tipo puntatori, HWND, o che
altro) in un std::vector, o un array, o altra forma ancora di contenitore
sequenzialmente percorribile (non c'e` altra abbondanza) e struttura il
tuo loop come un loop su quel contenitore.
Se i "20 richedit" in questione sono ad esempio dei controlli di un certo
dialogo DD, puoi usare le API per enumerare tutte le finestre figlie di DD,
presumibilmente nel corso dello startup (ad es. in OnInitDialog), per
trovare quelle che sono richedit e registrarne le HWND in un opportuno
std::vector.  Comunque, qui si va su problematiche piu` tipiche della
specifica piattaforma, quindi, se ti serve aiuto, chiedilo per favore in
it.comp.programmare.win32, ove saro` ben felice di fornirtelo (mentre
qui si parla di cio` che e` invece indipendente dalla piattaforma e
specifico del _linguaggio C++_, che di "richedit" non si occupa:-).
Alex

ok:
per il primo prob: ho capito, ti ringrazio, c'avevo già pensato, ma problemi
con win mi avevano ostacolato...(era più che altro un informazione)
per il secondo: cambio NG!
grazie!


var1 e var2?
Ovviamente i tipi CString e Tipo sono differenti e non puoi confrontarli
direttamente. La soluzione e` quella di realizzare una funzione ad hoc
che esegua prima una conversione di tipo e poi il confronto.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Puntatori

Salve, chi mi spiega cosa vuol dire puntatore, che cosa si intende col
puntare ad un indirizzo.
Grazie a tutti Gabriele

>Grazie a tutti Gabriele
Forse ti conviene leggere un libro... comunque:
- un puntatore e' una variabile che contiene l'indirizzo di memoria di un'altra variabile;
- ad esempio "char* p" e' un puntatore ad una variabile di tipo char;
- per assegnarla devi ad esempio scrivere "p = &variabilechar" (& ricava l'indirizzo di <variabilechar>";
- per scrivere nella variabile puntata usa *p = 'a';
- i puntatori hanno una propria aritmetica nel senso che possono essere incrementati, decrementati, etc.;
Antonio Donatiello
Newsgroup: it.comp.lang.c++
Titolo: domandine basilari...

3 domande...
1)qual'è la differenza tra
windows application project
console application project
2)cos'è
support for atl/mfc/clr ?
3) perchè non mi permette di includere la libreria windows.h ?
mi dice FATAL ERROR C1083:cannot open inculde file:'windows.h':no such file 
or directory...
grazie a chiunque abbia la delicatezza di rispondermi...
-- 
Ma tu l'hai visto il mio blog ???
http://alfaking.blogspot.com
Skype: Alfaking8
MSN: 
alfa...@hotmail.com
ICQ #145025749 

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni, come ad esempio
C++/CLI. 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

 Ciao,
[cut]
già sentita sta solfa...
grazie della gentilezza e della cortesia.

Newsgroup: it.comp.lang.c++
Titolo: ciaooo

Ciao ragazzi...
chi di voi sa dirmi quale linguaggio usare per programma giochi?
intendo quale linguaggio di programmazione è ottimale per programmare
giochi...
magari qualche link mi farebbe comodo...
THX

 wrote 

Il C++ va benissimo, ma hai bisogno di chiamate a OpenGL o DirectX etc..
Il C++ da solo (senza DirectX) ad esempio non fa molta grafica ;-)
Tommy
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Giustissimo, la strada del c++ č perň una delle piů complesse e tortuose...
Mi sento di consigliarti il Visual Basic se vuoi andare sul semplice...
Ciao
-- 
Axel
Mods of Cropcirclecrew
Sezione Programmazione Domande/Risposte
http://www.cropcirclecrew.org/public/cccforum/index.php

 
Ti consiglio di usare OpenGL (almeno i giochi che fai girano anche su 
Linux :) ), per un Tutorial completo prova a guardare 
http://nehe.gamedev.net/

 ha scritto nel messaggio 
news:415d9f62$0$23955$5402...@news.sunrise.ch...

Newsgroup: it.comp.lang.c++
Titolo: Argomenti variabili

Mi chiedevo se era possibile creare una funzione che accetta un numero
variabile di argomenti, e prima di importunare il NG ho cercato un po su
internet ed ho trovato questo:
#include <stdarg.h>
#include <iostream.h>
double average(int num, ...)
{
  va_list arguments;        //A place to store the list of arguments
  va_start(arguments, num); //Initializing arguments to store all values
  int sum=0;       // passed in after num
  for(int x=0; x<num; x++)   //Loop until all numbers are added
    sum+=va_arg(arguments, double); //Adds the next value in argument list
to sum.
  va_end(arguments);      //Cleans up the list
  return sum/(double)num;    //Returns some number (typecast prevents
trunctation)
}
int main()
{
  cout<<average(3, 12.2, 22.3, 4.5)<<endl;
  cout<<average(5, 3.3, 2.2, 1.1, 5.5, 3.3)<<endl;
return 0;
}
Purtroppo, non riesco ad afferrare il funzionamento di stdarg.h (e quindi
importuno il NG), in particolare questo:
typedef void _FAR *va_list;  //Il famoso puntatore void? e cosa è _FAR?
#define va_start(ap, parmN) ((void)((ap) = (va_list)((char _FAR
*)(&parmN)+__size(parmN))))  //Notte fonda
#define va_arg(ap, type) (*(type _FAR *)(((*(char _FAR *_FAR
*)&(ap))+=__size(type))-(__size(type)))) //Come sopra
#define va_end(ap)          ((void)0)
Si può raggiungere lo stesso scopo senza usare #define? (perchè dubito che
capirò mai le tre linee sopra).

 }
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 numeri ci sono, i successivi sono tutti dei double).
sei stato pių che esauriente e volevo aggiungere solo una cosa :
se richiama la funzione in quedsto modo:
cout<<average(3, 12.2, 22.3, 4.5)<<endl;
sicuramente non passa solo double deve stare anche attento al passaggio dei
parametri..
ciao


Grazie, ho capito perfettamente!

 ciao
Chiamata cosi' il primo parametro e' un int e gli altri sono double. Il che e'
quello che la funzione si aspetta internamente.
Se la chiamasse cosi':
cout<<average(3.0, 12.2, 22.3, 4.5)<<endl;
andrebbe bene lo stesso perche' il primo parametro e' prototipizzato e pertanto
viene convertito.
Pero' bisogna stare attenti a non sbagliarsi e fare una cosa del genere:
cout<<average(5, 12.2, 22.3, 4.5, 3, 4.2)<<endl;
o anche, il che per noi italiani e' piu' probabile,
cout<<average( 3, a, b, 4,5 )<<endl;
dove evidentemente si voleva passare 4.5 come terzo parametro!


cout<<average(5, 12.2, 22.3, 4.5, 3, 4.2)<<endl;
:))
ciao
--
-------
sito: 
www.dadev.it
ultime: Ocx per irc testi freeware
-------
Newsgroup: it.comp.lang.c++
Titolo: tutorial c++...

Salve a tutti non so se sono proprio in-topic, ma vorrei sapere se conoscete
un sito da cui si possano imparare gli estremi della programmazione win con
vc++?...
Intendo un posto che illustri un pochetto come si costruisce una
applicazione win, gestione degli eventi classi mfc ecc...
Anche roba non estrema tanto per cominciare. Solo non quei corsi che ti
insegnano ad usare l'ambiente, io sono interessato alla programmazione win.
Grazie.
--
----------TAF----------
Se ti disegnassi una linea in faccia sembreresti proprio un culo
Trini alla frutta aka potenza del pesante (abbonato nord n°833)
ICQ number 15461418
Homepage 
http://utenti.lycos.it/triniallafrutta

 insegnano ad usare l'ambiente, io sono interessato alla programmazione
win.
Tratta solo le API e non le MFC, ma se non altro l'autore è mooolto
affidabile:
http://www.aleax.it/
Ciao

 insegnano ad usare l'ambiente, io sono interessato alla programmazione
win.
Posta su it.comp.programmare.win32 .
Poi al volo ti dico che per iniziare la programmazione win32 non esiste
nulla di meglio di :
http://www.amazon.com/exec/obidos/tg/detail/-/157231995X/qid=1055352380/sr=1
-1/ref=sr_1_1/102-6782340-3899334?v=glance&s=books
Tommy
Newsgroup: it.comp.lang.c++
Titolo: Windows : da dove cominciare ?

Sono un programmatore C++ in ambiente DOS.
Mi piacerebbe ora dedicarmi alla produzione di
software in ambiente Windows.
Ma , oltre al problema di quale sia il migliore ambiente
integrato da utilizzare, sul quale ogni programmatore
avrà la sua idea, mi chiedo quali siano le nozioni
fondamentali sul SO che bisogna conoscere per
poter partire , e dove trovarle (sia in rete che come
testi stampati).
In un settore come il nostro, dove un libro specifico
costa qualche centinaio di migliaia di lire, vorrei
evitare di acquistare dei "mattoni" che non facciano
al caso mio.Grazie
                                                    Lorenzo Girardin

poter partire , e dove trovarle (sia in rete che come
Dipende dall'ambiente integrato che ti trovi eventualmente
ad usare, o meglio dal framework che usi entro questo
ambiente...!  Per non usare nessun framework, il testo
migliore da cui partire e` sempre il Petzold (oggi Petzold
e qualcun altro, comunque sempre quello).  Ma se usi un
buon framework molte di quelle nozioni non ti sono piu`
fondamentali e men che meno occorre conoscerle per
poter partire...!!!  E` come dire che, se programmi in MASM
nudo, fra le nozioni fondamentali del DOS indispensabili
per poter partire ci sono i vari sotto-codici dell'interrupt
21h -- ma, se usi una libreria decente quali quelle di solito
fornite con qualsiasi compilatore C o C++, allora questo
tipo di nozioni sul DOS non sono piu` fondamentali ne`
indispensabili, e si possono fare programmi ottimi senza
conoscerle a fondo, anche se a qualcuno puo` interessare
comunque approfondirle (ma in una fase ulteriore...!).
C'e` chi sostiene che "bisogna" conoscere le nozioni di
base prima di imparare quelle di piu` alto livello e di piu`
facile uso -- come dire che bisogna imparare l'assembler
prima del C e il C prima del C++, o l'interrupt 21h prima
di printf.  Io non sono d'accordo, e penso che sia invece
meglio imparare prima le cose piu` facili da usare, dopo,
se mai, quelle di piu` basso livello che in realta` gli stanno
sotto.  Quindi, io direi di imparare a programmare Windows
partendo da un framework (MFC, OWL, VFC, o altri ancora,
vedi tu!), per passare eventualmente solo dopo all'uso delle
nude API di Windows, se ti interessano questi problemi di
basso livello o per i casi in cui il tuo framework non ti fa
tutto quello che ti serve.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Domanda facile su directory

 Grazie.
Temo che la cosa sia strettamente dipendente dall'OS utilizzato... ma per
semplificarti la vita potresti creare una classe per la gestione del
filesystem e all'interno dei suoi metodi utilizzare le chiamate di sistema
specifiche, in modo da poter effettuare il porting cambiando solo quella
classe e non le funzioni/classi che ne fanno uso.
Massimo

 una directory e scorrere i file contenuti.
No, in C++ standard non si può fare. Se ti accontenti del Posix allora
si. Oppure le API del tuo sistema operativo. In parole povere, la
portabilità 100% la perdi nel momento in cui vuoi occuparti di
directory.
EMG


Non esiste una funzione Standard C++ per fare quello che vuoi,
ma lo Standard POSIX definisce le funzioni:
closedir
opendir
readdir
rewinddir
in dirent.h.
(Queste funzioni sono supportare anche dal compilatore della
Borland).
Manlio Perillo

 una directory e scorrere i file contenuti.
Purtroppo nella libreria standard non c'e' niente per
esaminare il contenuto d una directory.
Se vuoi evitare le funzioni specifiche del SO, puoi usare
la libreria dir_it (
http://www.boost.org/libs/dir_it/index.htm
).
Non e' standard ma funziona su Unix e Win32 (e in futuro 
probabilmente anche su altri sistemi).
	Mauro

Grazie.
Ci sono vari modi per poterlo fare, purtroppo nessuno di questi é
standard. Puoi usare le funzioni definite in "dirent.h" oppure quelle
definite in "dir.h" come findfirst() , findnext() ,ma non posso
garantire che esse possano essere usare anche su compilatori diversi
dal djgpp o dai compilatori Borland.
Ora che ci penso però un metodo standard ma decisamente ostico
potrebbe essere quello di indirizzare il contenuto di una chiamata al
sistema operativo "dir" su un file ASCII e poi leggerne riga per riga
il contenuto. So che é squallido, ma ti posso assicurare che qualcuno
l'ha pure usato questo sistema...ovviamente non io.
Il Ghenio
-----------
LOVELY SARA
Dal lunedi'al venerdi'su Italia Uno alle 8:10
Non perdetevelo...
-----------

 il contenuto.
Non è comunque un modo portabile e quindi tanto vale utilizzare le
comode funzioni offerte da praticamente tutti i compilatori.
EMG

e quindi tanto vale utilizzare le comode funzioni offerte da praticamente tutti i compilatori.
Questo é poco ma sicuro.
