mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Template

Una domanda da vero principiante.
Considerate il seguente codice:
/* [...] */
template<class T, int ssize = 100>
class StackTemplate
{
   T stack[ssize];
   int top;
public:
   StackTemplate() : top(0) {}
   void push(const T& i)
   {
     require(top < ssize, "Too many push()es");
     stack[top++] = i;
   }
   T pop()
   {
     require(top > 0, "Too many pop()s");
     return stack[--top];
   }
   class iterator; // Declaration required
   friend class iterator; // Make it a friend
   class iterator // Now define it
   {
     StackTemplate& s;
     int index;
   public:
     iterator(StackTemplate& st): s(st),index(0){}
/* [...] */
La penultima riga è
   iterator(StackTemplate& st): s(st),index(0){}
In altri esempi invece viene usato l'equivalente di
   iterator(StackTemplate<T>& st): s(st),index(0){}
L'aggiunta di "<T>" è necessaria solo nel caso si voglia accedere, per 
es. nella lista dei costruttori, ai membri di st?
Kiuhnm

 es. nella lista dei costruttori, ai membri di st?
Scritta cosi' secondo me e' un errore. Nella forma StackTemplate<T,
ssize> e' una forma alternativa ed equivalente a StackTemplate, ovvero
all'interno di una classe template e' possibile omettere dal nome della
classe la specifica dei parametri del template, posto che ci si
riferisca alla stessa specializzazione.
Ciao,
Nicola

 riferisca alla stessa specializzazione.
Per non far torto all'autore, posto l'esempio da cui ho dedotto (forse 
malamente) l'analogia:
template<class T> class Stack {
   struct Link {
     T* data;
     Link* next;
     Link(T* dat, Link* nxt) : data(dat), next(nxt) {}
   }* head;
public:
   Stack() : head(0) {}
   ~Stack();
   void push(T* dat) {
     head = new Link(dat, head);
   }
   T* peek() const {
     return head ? head->data : 0;
   }
   T* pop();
   // Nested iterator class:
   class iterator; // Declaration required
   friend class iterator; // Make it a friend
   class iterator { // Now define it
     Stack::Link* p;
   public:
     iterator(const Stack<T>& tl) : p(tl.head) {}
/* [...] */
Quello che hai detto si applica anche qui?
Kiuhnm

 Quello che hai detto si applica anche qui?
Ne sono convinto. Il seguente programmino compila correttamente con il
compilatore Comeau:
template <typename T> struct O {
  struct I {
    I(O & o) {}
  };
};
int main() {
    O<int> o;
    O<int>::I i(o);
}
Ciao,
Nicola

 compilatore Comeau:
[...]
Ok, grazie.
Kiuhnm

Newsgroup: it.comp.lang.c++
Titolo: Il .h per esportare

Che differenza 'è tra un file .h e uno .cpp
Come creare un .h dopo aver già scritto tutto in .cpp
--
My home page: 
http://www.fortunecity.it/olimpico/pallavolo/6/index.html

 wrote in message
news:8f4qqc$hpe$1...@nslave2.tin.it...


Newsgroup: it.comp.lang.c++
Titolo: VOLETE IMPARARE IL C++ GRATIS?

-- 
Alessio Treglia
pagina Web
http://www.grisnet.it/utenti/treglia
sito FTP 
ftp://ftp.grisnet.it/utenti/treglia
ChatInfo
server: 
comicsrv3.microsoft.com
chat: #Treglia_Chat
e-mail
tre...@grisnet.it
atre...@freemail.it
al...@freemail.it
pro...@freemail.it

Ma se lo insegni gratis, ci spieghi come mai ogni 2-3 giorni posti tanti
messaggi tutti uguali?
Newsgroup: it.comp.lang.c++
Titolo: Standard c++ e dialog system

Qualcuno saprebbe dirmi cos'è dialog system e se c'entra con lo standard
o se c'è la possibilità di usare un programma scritto in dialog system su
piattaforme diverse?
Saluti
Antonio.

 piattaforme diverse?
Non so cosa sia dialog system, ma di sicuro non c'entra con lo standard del C++.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: [?]:cin

Ciao vi sottopongo il seguente codice:
// 19/05/02 12.52
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string parola;
    while (cin >> parola)
        cout << "Parola letta: " << parola << endl;
     cout <<  "Non ci sonopiù parole da leggere.";
     return 0;
}
Perché il cin se inserisco una stringa tipo: Ciao a tutti
quando vado a stampare in realtà mi restituisce:
Parola letta: Ciao
Parola letta: a
Parola letta: tutti
e non
parola letta: Ciao a tutti
Grazie a tutti

 parola letta: Ciao a tutti
Ti sei risposto da solo:
"Ciao a tutti" sono tre parole, non una! :-))
usa
std::string stringa;
std::getline(std::cin, stringa);
--
Gerolamo

 ha scritto nel messaggio
news:R9PF8.81599$US3.1...@twister1.libero.it...

Ok avrei scommesso che mi avresti fatto tale osservazione ;-) Ma a parte gli
scherzi vorri capire... al posto di aprola avrei potuto scrivere stringa...
e una stringa può essere composta da più parole... vorrei capire un po'
meglio come funzione la cin
 Ciao e grazie

Semplice, la cin acquisisce, almeno il comando base, una stringa di
caratteri o meglio dire una serie di cratteri terminanti o con l'invio o con
lo spazio.
Se usi le funzioni mebro della classe cin, puoi utilizzare al meglio ciň che
hai programmato es:
cin.get(stringa, n);
Legge n caratteri compresi gli spazi e si arresta al comando invio o ad
esaurimento dei 30 caratteri.
cin.getline(stringa, max);
Legge un rigo intero.
Es.
char s[80]; //dichiara una stringa di 80
cin.get(s, 80); //legge gli ottanta caratteri
cout << s << endl; //Visulaiza i caratteri e va a capo

 > Gerolamo
Penso che cin  cominci a leggere un carattere per volta
sul buffer di input , per esempio se tu digiti 
"                  aaaaaaaaaah!          bbbbbbbbbbbbbbbbbbbb"
e poi invio ,
cin salta i primi spazi copia sulla std::string "aaaaaaaah!"
e appena incontra uno spazio od un newline ritorna
Invece la getline non si interrompe con uno spazio , ma si interrompe
con un newline .
--
dario
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: CString/allocazione

Innanzi tutto un saluto a tutti. Non mi è capitato spesso di fare delle 
prove con il C++ ma vorrei chiedervi ragguagli riguardo ad una cosa che 
mi è capitata usando CString. Ho dichiarato tre oggetti di questa 
classe come segue:
CString a, b, c;
f()
{
}
Dopo aver verificato la comodità nell'utilizzo, ho provato ad 
utilizzare l'operatore LPCTSTR() per tentare un passaggio della stringa 
per referenza e nella mia funzione ho scritto:
getcwd((LPCTSTR)a, 300);
Per la differenza tra "char *" e "const char *" mi ha dato errore in 
compilazione allora ho aggiunto un recast in questo modo:
getcwd((char *)(LPCTSTR)a, 300);
Compilazione e link mi sono andati a buon fine ma durante l'eseguzione 
'b' e 'c', dopo la chiamata a getcwd assumono lo stesso valore di 'a'. 
Perchè? Quale castroneria ho mai combinato? Come dovrei fare per 
ovviare a ciò?
Vi ho esposto i miei dubbi e spero, per lo meno, di avervi fatto fare 
una grassa risata alla faccia della mia ignoranza.
Vi ringrazio anticipatamente per gli eventuali chiarimenti.

CString e LPCTSTR sono classi/tipi proprietari Microsoft, non fanno
parte dello standard C++ e sono quindi fuori tema in questo newsgroup.
Prova a chiedere su it.comp.programmare.win32
Ciao,
Nicola

Nicola Musatti scriveva il 19/04/2005 :

Grazie,
ciao.
Newsgroup: it.comp.lang.c++
Titolo: ActiveX compositi

Vorrei creare un ActiveX formato da un form con un pulsante e una
textbox. Come faccio a crearlo con VisualC++ 5.0? L'help non mi dice
molto in più di "Si può fare, controlla il libro etc."
Ric
scozz...@iol.it

molto in più di "Si può fare, controlla il libro etc."
Il mio suggerimento: passa a Visual C++ 6.0, con cui
la versione 3.0 dell'ATL te lo rende facilissimo; con
VC++5.0, *NON* e` banale.  Si`, in teoria sara`
possibile, ma personalmente non mi pare sensato
passare chissa` quanto tempo a cercare di duplicare
funzioni che la versione VC++ uscita gia` da piu` di
due mesi comprende...
Comunque, se devi a tutti i costi usare VC++5, e`
possibile che trovi qualche utile esempio per i tuoi
scopi su 
www.codeguru.com
.
Alex

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

Salve ragazzi scusate per banalità della domanda, qualcuno saprebbe
indicarmi qualche compilatore per il C++ sotto windows?
grazie in anticipo
--
Ammanicato del sistema!!!
ICQ # 84624356

Uno è il Dev-C++ che poi utilizza il gcc come compilatore.
Fai una ricerca con google e lo trovi ;-))
ciao,
Matteo

Giovanni ha scritto:

http://www.bloodshed.net/dev/devcpp.html

Newsgroup: it.comp.lang.c++
Titolo: Fork e Pipe

Salve a tutti
Ho realizzato (in C sotto Linux) un programma che crea N processi figli e
altrettante pipe per
la comunicazione.
Innanzitutto non ho ancora ben capito se le pipes sono bidirezionali, oppure
se ad esempio solo il padre può leggere dalla pipe e solo il figlio ci può
scrivere. In teoria ho letto che gli handle della pipe dovrebbero essere
aperti dalla funzione "pipe" sia in lettura che scrittura.
Porto questo esempio perchè provando a far scrivere dal padre sulla pipe, e
leggere dai figli, la pipe sembra non funzionare (read ritorna "-1").
Inoltre la funzione read non dovrebbe essere "bloccante" ?
Vi ringrazio per qualsiasi aiuto
Saluti
Damianò

Damianò wrote:

mi sa che sei un po' OT.. dovresti provare su it.comp.os.linux.development
comunque ti ha detto bene :-)
mi pare che la funzione pipe() prenda un array bidimensionale come parametro
tipo pipe(int fd[2]) in cui i due interi sono i descrittori di lettura e 
scrittura rispettivamente (o il contrario, non mi ricordo...) e li puo' 
usare qualsiasi processo che li abbia ereditati, quindi sia il padre sia il 
figlio... se poi la read e' bloccante non me lo ricordo...
comunque sotto linux SEMPRE 
$> man pipe
Pinolo

Newsgroup: it.comp.lang.c++
Titolo: Memoria libera

Ciao,
programmo in C++ con GNU 3.2 su piattaforma linux.
Esiste una funzione che mi dice quanta memoria RAM e' disponibile al 
momento della chiamata?
Grazie,
Marco
-- 
----				| ~~~~
Per rispondermi sostituisci     | To answer me substitute
myname con thinkmarko, ovvero	| myname with thinkmarko
myname=thinkmarko		| myname=thinkmarko


Non in c++ standard...
chiedi sui newsgroups dedicati a linux
ciao
--
------------------------
http://visualwx.altervista.org/
nuova release 0.77f [freeware]
VisualWx rad per c++,python,perl,lua e wxwindows
Newsgroup: it.comp.lang.c++
Titolo: domandina....

Ciao,
         cercando su internet ho trovato un oggetto che chiama thread c'č
nessuno che saprebbe spiegarmi cosa č e a cosa serve?
Grazie ancora per il supporto :-)
Phosphorus


Vuoi sapere cosa è un thread?
Semplice: una porzione di codice che viene eseguita in modo
"concorrente" (ossia contemporaneamente) al resto del programma e
serve per eseguire operazioni in "background".
Ciao.

Caso strano ma vero....2 giorni fa ho fatto anche io la stessa domanda sul
gruppo it.comp.lang.programmarewin32 ( Subject : scusate l'ignoranza.... )
quindi puoi andare a vedere la risposta lě .
Ciao
-- 
Posted from 
ppp-73-71.15-151.iol.it
 [151.15.71.73] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c++
Titolo: Visual C++ & Outlook Express

Salve a tutti,
dovrei implementare una funzione in un programma realizzato in visual c++
che sia in grado di inviare e-mail.
Vorrei sapere se esistono dei comandi per richiedere ad outlook la creazione
di un e-mail passandogli da programma Destinatari, Titolo e Contenuto.
Ciao a tutti e grazie per l'aiuto.
Walter

"Hawkiller" <***remove***
w.lu...@tin.it
***remove***> ha scritto nel
messaggio news:kD5K7.126611$sq5.6...@news.infostrada.it...

Sei OT. Prova a chiedere in it.comp.programmare.win32
Ciao,
Cecco

Hai ragione, scusa, non mi ero accorto di aver sbagliato ng.
Ciao
Walter
Newsgroup: it.comp.lang.c++
Titolo: MUTLI STREAM DI FILE IN C++

 f.open("file2.txt", ios::in);
Certo. Basta che crei due istanze diverse:
ifstream f1, f2;
f1.open("file1.txt" ios::in);
f2.open("file2.txt", ios::in);
EMG

Volevo sapere se  era possibile gestire contemporaneamente più stream
di file con il c++ e se sì come. Esempio :
f.open("file1.txt" ios::in);
f.open("file2.txt", ios::in);
Come faccio ha scrivere sul file giusto, o a leggere sul file giusto?
esempio :
f.getline(saveline, MAX_CHAR);   // in che file andrebbe a leggere?
10000 grazie
credici
cre...@infinito.it
<--------------------------------------------------->
messaggio by: credici
mailtome    : 
cre...@infinito.it
my home     : 
http://credici.supereva.it
 
               (coming soon)
<--------------------------------------------------->


[...]
| f.getline(saveline, MAX_CHAR);   // in che file andrebbe a leggere?
Sull'ultimo aperto.


wrote:

e se volessi farlo leggere sul primo aperto ma tenendo
contemporaneamente aperto anche l'ultimo aperto (scusate il gioco di
parole) ?
<--------------------------------------------------->
messaggio by: credici
mailtome    : 
cre...@infinito.it
my home     : 
http://credici.supereva.it
 
visitate subito : 
http://www.city3000.it/athenet
e non ve ne pentirete mai 
<--------------------------------------------------->

 wrote :
| e se volessi farlo leggere sul primo aperto ma tenendo
| contemporaneamente aperto anche l'ultimo aperto ?
e se ne usassi due?-)


<--------------------------------------------------->
messaggio by: credici
mailtome    : 
cre...@infinito.it
my home     : 
http://credici.supereva.it
 


parole) ?
Un identificatore puo` denotare solo un oggetto alla volta!
Usa due stream diversi, uno per ogni file... non vedo perche` devi
complicarti la vita.
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------


wrote:

Non rispondergli cosi, altrimenti ti dice che ne ha già aperti 2....
8-)
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Aiuto preprocessore!

Qualcuno sa come fare:
	#define VERSIONE 1.2
	...
	printf("La versione č VERSIONE\n");
 
Cioč fare in modo che il preprocessore espandi qualcosa dentro le
"virgolette"?
Grazie anticipatamente, Marco.


Metodo 1)
#define VERSIONE "1.2"
printf("La versione e` " VERSIONE "\n");
Metodo 2)
#define VERSIONE "1.2"
printf("La versione e` %s\n", VERSIONE);
Ciao

Prova con cout che e' molto piu' semplice da usare
COUT<<"Questa e' la versione "<<VERSIONE<<"\n";
Daniele Maiorana
maio...@solnet.it

Ciao Marco,
  il 14 Nov 1997, parlavi di [Aiuto preprocessore!] a All:
 MC>    #define VERSIONE 1.2
 MC>    printf("La versione ? VERSIONE\n");
 MC> Cio? fare in modo che il preprocessore espandi qualcosa dentro le
 MC> "virgolette"?
prova con...
  #define VERSIONE "1.2"
  printf("La versione e' %s\n", VERSIONE);  
 
Greetings from Naples, Italy
Paolo"Jack Bass" Polce
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  NOTE: if present, remove "nospam." to reply...
  ItalTec BBS Free Internet Gateway - +39-81-5451506
  User email address:   
jack...@nospam.geocities.com
  User FidoNet address: 2:335/232
  Disclaimer: The views of this user are strictly his own.
  Naples, Italy.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Newsgroup: it.comp.lang.c++
Titolo: Typedef

Salve,
vorrei sapere come faccio a definire con typdef:
1. Puntatore a un array di 7 puntatori a int;
2. Array di 8 array di 7 puntatori a int;
Secondo me dovrebbe essere:
1.
typedef int* A[7] Array; // Mi da errore, penso a causa dell'indice.
typedef Array* Parray;
2.
int* MyArray[8][7]; // Giusto?
Grazie

 2. Array di 8 array di 7 puntatori a int;
   typedef array_int_ptr_7_t  array_array_8_t [8];
Max

 int* MyArray[8][7]; // Giusto?
giusto.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 
Dimenticato un pezzo:
  typedef array_int_ptr_7_t* array_int_ptr_7_ptr_t;
Max

   typedef array_int_ptr_7_t* array_int_ptr_7_ptr_t;
???
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 > int* MyArray[8][7]; // Giusto?
Che con typedef diventa:
Array MyArray[8];   ????
Grazie



Non ho capito bene :/

 
L'OP voleva un puntatore a un array di 7 puntatori. Io gli avevo 
typedef-inito solo l'array. Ho aggiunto il typedef del puntatore all'array.
Max

 typedef-inito solo l'array. Ho aggiunto il typedef del puntatore all'array.
Ops, non avevo fatto caso a quel "ptr" in più. I nomi troppo lunghi e
complicati spesso ingannano...


 ...ah... sto C++ :P
Leggibile per fare cosa?
L'unica cosa che non mi fa impazzire della leggibilita` C++ e` che non
ponendo obblighi di indentazione etc spesso ci si trova davanti codice...
come dire... un po' incasinato. Ma generalmente basta un bel ggvG= per
risolvere tutto. (Fra l'altro e` giusto che sia cosi`, non chiedo certo
regole come quelle del Python. A me piacciono, ma un altro potrebbe
odiarle).
Se il collega poi spaghetta, non ci si puo` fare nulla.
L'ultimo problema di leggibilita` e` quando usi un debugger i nomi di certi
tipi della libreria standard, che diventano lunghissimi e difficilmente
leggibili... o meglio, sforzano abbastanza la vista.
Ma insomma... su un typedef la leggibilita` poco conta. Basta che si
capisca cosa vuole dire il nuovo "nome".
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]
Newsgroup: it.comp.lang.c++
Titolo: problemi con BitBlt

  Supponiamo che io abbia:
una bitmap a colori ,ottenuta aprendo un file .BMP e posta, per es. nel DC
memDC;
una bitmap monocromatica , creata da me, e posta nel DC andDC;
ora, il problema è questo.
Le istruzioni
memDC.SetBkColor(RGB(255,0,0));   
andDC.BitBlt(0, 0, alfa, beta, &memDC, 0, 0,  SRCCOPY);
(dove alfa e beta sono le dimensioni della bitmap)
dovrebbe far si che la mia bitmap monocromatica contenga pixel neri dove
quella a colori conteneva pixel rossi e pixel bianchi altrove.
Questa almeno è la teoria, nella pratica non è così infatti andDC non mi
seleziona solo i pixel rossi ma anche quelli neri di memDC  (nella bitmap
che sto usando ci sono pixel rossi, neri, bianchi e grigi).... ora, io
vorrei sapere come opera la BitBlt... ossia come effettua i confronti tra
pixel... il colore lo considera  nella sua globalità o elemento per
elemento (rosso, verde e blu)?
Spero di essere stata chiara.... e ringrazio chiunque volesse aiutarmi.
Grazie 
Annamaria

...

Newsgroup: it.comp.lang.c++
Titolo: Drag'n'Drop

Salve!
Devo spostare items tra due TListView  utilizzando il Drag'nDrop...come
faccio ad implementarlo? (o in Delphi o in C++Builder)
Quali sono gli eventi e le funzioni che si devono utilizzare?
Aiutatemi!!
Grazie!
Demetrio Filocamo (
dfil...@tin.it
)

...

Newsgroup: it.comp.lang.c++
Titolo: FAQ 8 -- RISPOSTE

Se separo le definizioni di un template dalla sua dichiarazione
ponendole in file separati (.h e .cpp) non riesco ad istanziarlo.
Ho preferito aprire direttamente il thread per le risposte evitando
quello per le linee guida che mi pare sostanzialmente inutile....
Ecco la mia risposta:
Gli attuali compilatori hanno bisogno di avere completo accesso
sia alla dichiarazione che alla definizione di un template quando
questo viene istanziato. Come conseguenza di cio` non e`
possibile separare le definizioni dalle dichiarazioni, tutto deve essere
messo in un unico file header (.h).
Paolo 
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

 Ecco la mia risposta:
Aggiungerei solo una nota relativa al fatto che è solo un piccolo limite del
C++, che invece in altri linguaggi è fattibile fornire solo l'interfaccia e
non l'implementazione del template.
Ovviamente in questi linguaggi ci sono altri limiti, di solito rinunciano ad
un po' di controlli run-time.
Mi pare però che in Ada ci sia un meccanismo per cui si salvano capra e
cavoli. A costo di diventare OTT (Out Topic of Thread), qualcuno sa
confermare o smentire?
--
Alessandro Monti

C++
Non ho avuto modo di approfondire, pero` mi pare che altri abbiano piu`
volte espresso il fatto che si tratti di un limite dei compilatori... 
Nulla nel linguaggio impedirebbe di risolvere in qualche modo il
problema.


Newsgroup: it.comp.lang.c++
Titolo: Problemino semplice semplice con le classi

ciao,
se ho una classe c1 con dento una variabile condivisa a
e + classi inglobate cc1 cc2 cc3 ecc.
come faccio a riferirmi ad a da cc1 cc2 cc3 ecc.
e se ad esempio cc2 ha ancora classi inglobate ccc1 ccc2 ecc.
e voglio sempre riferirmi ad a di c1?
insomma tutte le sottoclassi devono avere in comune questa variabile
come la condivido? 

 come la condivido? 
Ti rispondo prendendoti "alla lettera":
template<int n>
struct B
{
	static int a;
};
template<int n>
int B<n>::a;
template<int n>
struct CC1 : public B<n>
{
	void set(int na) { C<n>::a = na; }
};
template<int n>
struct C1 : public B<n>
{
	CC1<n> cc1;
	void set(int na) { C<n>::a = na; }
};
template<int n>
struct C : public B<n>
{
	C1<n> c1;
	void set(int na) { C<n>::a = na; }
};
int main()
{
	C<1> c;			// prima istanza
	C<2> c2;		// seconda istanza
	c.set(1);
	std::cout << C<1>::a << std::endl;
	c.c1.set(2);
	std::cout << C<1>::a << std::endl;
	c.c1.cc1.set(3);
	std::cout << C<1>::a << std::endl;
	std::cout << std::endl;
	c2.set(10);
	std::cout << C<2>::a << std::endl;
	c2.c1.set(20);
	std::cout << C<2>::a << std::endl;
	c2.c1.cc1.set(30);
	std::cout << C<2>::a << std::endl;
	std::cout << std::endl;
	std::cout << C<1>::a << std::endl;
	std::cout << C<2>::a << std::endl;
}
Kiuhnm
Newsgroup: it.comp.lang.c++
Titolo: segnali hardware

Ciao ragazzi scusate non so se è una domanda ot cmq... la faccio a scapito
degli insulti che potrebbero arrivarmi..
Sentite Vorrei fare un programma in c++ per esempio che riesca a leggere i
segnali da una qualsisasi periferica
Per esempio Immaginate che io voglia dire al programma di dirmi se il pin
numero x della periferica x è attivo oppure di dirmi a che velocità di
trasferimento funziona il mio hd o cd o cmq gestire l'hardware a mio
piacimento...
So che è un po generico ma avete idea di quali risorse devo consultare?
Mi affido alle vostre conoscenze se sono ot chiedo scusa ma se qualcuno
sapesse indirizzarmi dopo gli insulti mi date qualche suggerimento?
Grazie Alex

 piacimento...
ftp://ftp.simtel.net/pub/simtelnet/msdos/info/helppc21.zip
Dan

Newsgroup: it.comp.lang.c++
Titolo: Compatibilità Visual C++ 5.0

Salve a tutti,
sono in posesso di una vecchia copia del MS Visual C++ 5.0.
Dopo averlo lasciato per anni nel cassetto ora ho l'esigenza di
doverlo usare per creare qualche semplice applicazione a 32 bit.
In particolare dovrei creare DLL non-MFC a 32 bit, applicazioni
consolle, e applicazioni/dll che usino MFC per gestire i controlli
base presenti fin da win95.
Le applicazioni in questione (tutto 32bit), che ovviamente funzionano
su win95/NT/98, funzionerebbero senza problemi anche su winME/2000/XP
??
In pratica, le vecchie MFC creano problemi?
Le applicazioni win32 consolle funzionerebbero ancora su winXP o sono
state eliminate come il supporto per il buon vecchio DOS?
Il visual studio 97 puň essere utilizzato come tool di sviluppo sotto
win2000/xp ecc?
Se ora mi dedico alle vecchie MFC 4.2 e un giorno mi trovassi ad usare
visual studio .net, troverei cambiamenti nelle classi&c. cosě
rilevanti da dover ricominciare da capo a studiare l'ultima versione
del framework  oppure si tratterebbe solo di "sincronizzarsi" ?
In pratica, studiarsi le MFC 4.2 sarebbe tempo buttato tali sono i
cambiamenti dell'ultima versione?
Grazie per le risposte!

 sono in posesso di una vecchia copia del MS Visual C++ 5.0.
[snip]
Mi spiace, ma il tuo messaggio è OT.
Fai un giro nel newsserver 
news.microsoft.com
 (credo sia giusto
l'indirizzo), e troverai le risposte che cerchi.
--
Lupin85©
FILSer #2 - Founder di #fils
"It is not important what you believe, only that you believe"
Newsgroup: it.comp.lang.c++
Titolo: Input di più tasti contemporaneamente

Ciao a tutti, sono nuovo in questo gruppo.
Vorrei sapere cosa mi serve (moduli, estensioni ecc) per fare un software che accetti l'input di più tasti contemporaneamente dalla finestra in cui mi trovo. Sono ben accetti consigli, guide e links.
Grazie


In che ambiente sei? Che framework usi?
 
Di solito basta registrare gli eventi di keyDown/KeyUp e usuare un vettore di
appoggio per memorizzare lo stato.
 
Ciao!

 appoggio per memorizzare lo stato.
 
C'è qualche guida o link per trovare keyDown/KeyUp  e il vettore di appoggio?
 

 C'è qualche guida o link per trovare keyDown/KeyUp  e il vettore di appoggio?
 
per .NET basta usare MSDN (anche online, ad esempio 
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup(v=vs.110).aspx
)
Per il "vettore di appoggio" intendo ad esempio un int[0xff], ogni cella
rappresenta un char-code della tastiera; sul keydown metti a uno e sul keyup
a zero.
Probabilmente però per combinazioni come ctrl/alt/shift+qualcosa vuoi usare
altri metodi (ad esempio gli acceleratori).
 
Ciao!
Newsgroup: it.comp.lang.c++
Titolo: NotifyIcon (URGENTE)

Come si usa la API NotifyIcon?


direttamente da MSDN:
Shell_NotifyIcon
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
    DWORD dwMessage,
    PNOTIFYICONDATA pnid
);
Sends a message to the system to add, modify, or delete an icon from the
taskbar status area.
Returns nonzero if successful, or zero otherwise.
dwMessage
Message value to send. This parameter can be one of these values: NIM_ADD
Adds an icon to the status area.
NIM_DELETE  Deletes an icon from the status area.
NIM_MODIFY  Modifies an icon in the status area.
pnid
Address of a NOTIFYICONDATA structure. The content of the structure depends
on the value of dwMessage
NOTIFYICONDATA
typedef struct _NOTIFYICONDATA
    DWORD cbSize;
    HWND hWnd;
    UINT uID;
    UINT uFlags;
    UINT uCallbackMessage;
    HICON hIcon;
    char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
Contains information that the system needs to process taskbar status area
messages.
cbSize
Size of this structure, in bytes.
hWnd
Handle to the window that will receive notification messages associated with
an icon in the taskbar status area.
uID
Application-defined identifier of the taskbar icon.
uFlags
Array of flags that indicate which of the other members contain valid data.
This member can be a combination of the following: NIF_ICON  The hIcon
member is valid.
NIF_MESSAGE  The uCallbackMessage member is valid.
NIF_TIP  The szTip member is valid.
uCallbackMessage
Application-defined message identifier. The system uses this identifier for
notification messages that it sends to the window identified in hWnd. These
notifications are sent when a mouse event occurs in the bounding rectangle
of the icon.
hIcon
Handle to the icon to add, modify, or delete.
szTip
Tooltip text to display for the icon.

Cos'è una NotifyIcon?
Cos'è MSDN?
Grazie.
Diego Pettenò

Cos'č MSDN?
Materiale per programmatori prodotto da M$
Paolo
xpost e followup su it.comp.programmare.win32
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: compilatore standard !!

ciao a tutti,
Inizierň a studiare il c++ a breve, ho comprato "C++, corso di
programmazione" di Lippmann (che ne pensate ?); volevo sapere quale
compilatore C++ posso utilizzare per gli esercizi del libro...mi spiego:
vorrei un compilatore il piů vicino possibile allo standard, ho provato a
fare il primo esercizio con il Borland C++  e non me lo compila...stesso con
il VC++.....sotto linux uso il GCC, ma per Windows, vorrei evitare di usare
il CGWin....cosa mi consigliate? Ho sentito parlare molto bene del C++
compiler di Borland, quello scaricabile gratuitamente...voi che ne pensate ?
Grazie per eventuali tips
Alessandro
P.S.: Esiste un compilatore C++ standard per palmare ?...io ho un Palm
M105...sarebbe fico andare in giro e giocarci nei momenti liberi !

 voi che ne pensate ?
penso che se avessi prestato + attenzione ai msg gia' presenti, avresti 
trovato molti suggerimenti, ad esempio DevC++ per win di Bloodshed

il VC++
Se è il primo esercizio probabilmente non è colpa del compilatore, non
saranno completamente standard ma per cose semplici non dovrebbero
esserci problemi.
-- 
Marco Barisione (ICQ 84277092)
Su it.news.gruppi si sta discutendo della creazione di it.comp.lang
dove si parlerà dei linguaggi senza un proprio newsgroup e dei
confronti fra i diversi linguaggi.
Se sei interessato unisciti alla discussione.

 trovato molti suggerimenti, ad esempio DevC++ per win di Bloodshed
Scusa ma sono appena tornato dal Kosovo...una settimana e
riparto....altrimenti avrei cercato con Deja....sai la famiglia....non posso
stare molto dietro il pc

Newsgroup: it.comp.lang.c++
Titolo: parentesi graffa

...
Sto iniziando ad utilizzare questo compilatore e non so come si digita la
parentesi graffa. Ringrazio anticipatamente per l'aiuto
----------

Graffa chiusa } ALT+125
molto piu' semplicemente Alt Gr + Shift + [ o ]

ALT+SHIFT+[ oppure ALT+SHIFT+]

Graffa chiusa } ALT+125
Oppure basta impostare la tastiera come italiana 142...
Non capisco come si fa a scrivere il C senza avere le parentesi graffe sulla
tastiera :-)
Ciao by Stefano from Italy
Online as 
s.pe...@usa.net
Newsgroup: it.comp.lang.c++
Titolo: [drm1] compilatore C++ gratis per DOS

ciao!! sapete se c'č qualche semplice (installabile da una
principiante) e piccolo compilatore ansi c++ gratuito in rete?

 principiante) e piccolo compilatore ansi c++ gratuito in rete?
Cerca Cygwin che sarebbe il GCC per DOS/Windows
oppure scaricati dal sito della Borland il BCC 5.5
oppure ancora scaricati il Watcom C++ che ha pure
l'IDE (sono 60MB di download, perň genera il codice
piů veloce del west :-> )
Boh... sicuramente ce ne sono altri ma adesso non
me li ricordo.

grazie a tutti. ma mi sembrano tutti o troppo grossi, o non gratis , o
difficili da installare.
mi hanno dato una vecchia versione di Digital Mars C/C++ 
che sta su due dischetti e non occorre configurarla. sapete se
rispetta gli standard?
m.l.

 m.l.
NO


Puoi provare LCC che e' famoso per le sue performances!
E' semplice, ha un editor basilare e piccolo meno di 3Mb.
Lo trovi al link:
http://digilander.libero.it/capano/strumenti_lavoro.htm
Bye


Ma dai, il BCC grosso e difficile da installare?!?
Non so che devi fare o perchč ti serve, ma... mi sa
che č meglio che trovi qualcuno in real che ti dia
una mano... ti serve.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tin Toy wrote:
| Cerca Cygwin che sarebbe il GCC per DOS/Windows
http://cygwin.com/
 è solo per Windows (puro o con emulazione POSIX)
http://www.delorie.com/djgpp/
 invece è quello per DOS
(ma il compilatore è sempre lo stesso: GCC)
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iEYEARECAAYFAkAj9gkACgkQaJiCLMjyUvt39gCgk5bSzAlY9VBNRn2diT/UsZcK
AnoAoLi4myNoIOYqV5QfU7T9tkxlQ19W
=4gb3
-----END PGP SIGNATURE-----
Newsgroup: it.comp.lang.c++
Titolo: Recuperare parametri della riga di comando

Mettiamo io abbia una stringa di comando di questo tipo 
char *commLine = "C:\\temp\\mioexe.exe c:\\Documents and
settings\\Admin\\miofile.txt c:\\temp new\\altrofile.txt"
come faresti a recuperari i 2 parametri correttamente tenendo conto
degli spazi nel path del file ?

 writes:


i parametri sono passati in argv[] e contengono gli spazi.  basta
leggerli e farci quel che ci devi fare.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

degli spazi nel path del file ?
Gli spazi dividono i parametri, quindi essi sono 6 e non due come
tu vorresti.
Per questo motivo ogni path con gli spazi dovrebbe essere passato
a qualunque applicazione delimitato dalle virgolette. Questo
facilita il riconoscimento, perche' devi considerare che una
funzione di parser deve sempre essere implementata.

leggerli e farci quel che ci devi fare.
devo usare WinMain

Newsgroup: it.comp.lang.c++
Titolo: Aiuto sui colori

Salve a tutti,
volevo chiedere se qualcuno sa come far eper colorare il testo che viene
visualizzato nella finestra dos da un programmino scritto in C/C++.
Mi serve per l'esame di laboratorio.
Grazie 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:b35d4dbf16cb283e8c5...@mygate.mailgate.org...

Newsgroup: it.comp.lang.c++
Titolo: Browsing folders

Salve a tutti. Ho un piccolo problema e forse qualcuno sa aiutarmi.
Premettendo che lavoro con Microsoft Visual C++ 5.0, sto cercando una
tecnica "semplice" che permetta di navigare in un drive e selezionare una
directory (directory e non file!). Sono cioe' alla ricerca di una classe
predefinita sullo stile di CFileDialog che pero' permetta di navigare solo
tra i nomi di directory senza scendere a livello dei singoli file. Quando
chiudo il dialog box, la classe deve essere in grado di restituirmi il nome
della directory selezionata, sullo stile della funzione GetFileName() della
classe CFileDialog.
In altre parole, l'utente dove poter in qualche modo fare il browsing tra
le directory selezionandone una (la quale diventera' la "working directory"
del progetto in esecuzione).
Ore spese a navigare nell'help in linea non hanno dato risultati. Spero di
non ritrovarmi costretto a perdere un sacco di tempo a scrivermi tutto il
codice da solo.
Ringrazio in anticipo chiunque sapra' darmi indicazioni utili. Potete
rispondere sul newsgroup oppure privatamente all'indirizzo 
duc...@bigfoot.com
.
Saluti,
   Duccio
--
Automatic posted from 
mail-gw1adm.rcsntx.swbell.net
 [151.164.60.101]
via Mailgate Server - 
http://www.mailgate.org

directory (directory e non file!). Sono cioe' alla ricerca di una classe
L'API SHBrowseForFolder non e` tanto comoda da usare quanto
lo sarebbe una classe, ma fa, sostanzialmente, quel che tu chiedi.
Le prepari una struttura BROWSEINFO che da` alcuni dettagli di
quel che vuoi fare, tra cui un puntatore ad un array di MAX_PATH
char dove ti deposita il nome del folder scelto dall'utente (puoi
garantirti che sia proprio un directory del filesystem, e non uno
pseudo directory dello shell, passando il flag BIF_RETURNONLYFSDIRS 
come parte del campo ulFlags della struttura BROWSEINFO) --
insomma, sin qua, ordinaria amministrazione di API Windows.
Il problema e` che SHBrowseForFolder ti ritorna: se l'utente
preme Cancel, un null, e vabbe`, vuol dire che l'utente ha scelto
di annullare l'operazione; ma se l'utente preme invece OK, allora
una LPITEMIDLIST -- che potresti usare per ripassarla allo
shell per vari tipi di operazione -- ma che tocca a te liberare...
e devi farlo *con l'allocatore dello shell*, il che significa qualcosa
come...:
LPMALLOC  lpMalloc;                                             
HRESULT  hr=SHGetMalloc(&lpMalloc);
if (FAILED(hr)) return FALSE;
BROWSEINFO bi;
memset(&bi, 0, sizeof(bi));
char buff[MAX_PATH];
bi.pszDisplayName =buff;
bi.lpszTitle = "Pick a folder, any folder"
bi.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST lpi = ShBrowseForFolder(&bi);
if(lpi == 0) {
    // quel che devi fare se l'utente clicka su
    // Cancel invece di scegliere un fodler
} else {
    lpMalloc->Free(lpi);
    lpMalloc->Release();
    // usa buff[], folder scelto dall'utente
}
Posso avere sbagliato qualche dettaglio perche` non
ho tempo di testare, ma la sostanza e` questa...
Alex
Newsgroup: it.comp.lang.c++
Titolo: InstallShield free Edition

Utilizzando questa versione di InstallShield ho la necessità di creare
un collegamento sul desktop a Data/Ora di sistema.
Manualmente basta prendere l'icona corrispondente dal pannello di
controllo e posizionarla sul desktop. Se poi si verificano le proprietà
dell'icona si vede che non fa riferimento direttamente ad un eseguibile
presente su disco. Come fare quindi, tramite la funzione AddFolderIcon
di InstallShield, a crere questo collegamento??
Grazie in anticipo per le eventuali risposte.
Angelo


wrote:

Scusa se non so risponderti, il software InstallShield si trova nel
pacchetto del Microsoft Visual Studio ???
Ne avrei bisogno per un software che non vuole girare su altri
computer.
Ciao, Massimo

InstallShield free edition è distribuito con Microsoft Visual C++,
quindi lo puoi trovare anche nel pacchetto di Visual Studio.
Ciao
Angelo
Massimo S. ha scritto:


Angelo
Grazie, evidentemente non è stato installato quando ho eseguito
l'installazione tipica.
Ciao Massimo
Newsgroup: it.comp.lang.c++
Titolo: apri file.. xor e scrivi su un'altro file

Salve a tutti
necessitavo di una funzioncina stupida stupida....
devo aprire un file binario...    leggere byte x byte e farne uno xor con un
byte "chiave"  e riscrivere il tutto su di un'altro file...
vorrei ottenere un eseguibile da lanciare tipo
dexor.exe  nomefileinput  nomefileoutput
lo so' è una cretinata... ma x questo dato che è una cosa banalissima volevo
farmela da me...  me ho davvero poco tempo per andare a spulciare i comandi
fopen ecc ecc
se c'è qualcuno che ha esempi magari se me li spedice mi fa' un grossisimo
favore..    me li modifico anche da solo.. ma quel che non ricordo è come
aprire un file in lettura...  come aprirne un altro in scrittura  e come
ricevere dei parametri da linea di comando
Ciao a tutti e grazie per chi avra' la pazienza di leggere sin qui
Alberto G.

 come ricevere dei parametri da linea di comando
int main(int argc, char * argv[]){
...
  if (argc == 1) // nessun parametro
  {...} 
  else if (argc ==2) // 1 parametro
  {...} 
  else if (argc ==3)  // 2 parametri
  {
    std::string nomefileinput(argv[1]);
    std::string nomefileoutput(argv[2]);
  }
Newsgroup: it.comp.lang.c++
Titolo: AIUTO - richiamo metodo da una classe istanziata

Ho una classe A che ha come attributo privato una
classe B.
In un metodo di A viene richiamato un metodo di B. 
Questo metodo di B può richiamare un metodo di A?
Sicuramente si...
io ho provato spedendo al metodo di B l'indirizzo di
A.
Per far cio nel metodo di B devo dichiarare che c'e'
un puntatore ad A e quindi ho messo #include A, ma
anche A ha #include B... questo provoca un errore...
Come faccio AIUTATEMI... sto iniaziando adesso a
programmare in C++
Michela
______________________________________________________________________
Do You Yahoo!?
Il tuo indirizzo gratis e per sempre @
yahoo.it
 su 
http://mail.yahoo.it
-- 
Posted from 
web12608.mail.yahoo.com
 [216.136.173.231] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

anche A ha #include B... questo provoca un errore...
visto che usi un puntatore non è necessario definire la classe A, ma è
sufficiente dichiararla; perciò invece di
#include "A.h"
scrivi
class A;
Anto
--
Antonio Cuni, 18 anni, studente
Brainbench Certification: 
Master C++: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
http://www.brainbench.com/transcript.jsp?pid=1301688

 class A;
Ovviamente questo vale per il file B.h. Poi devi anche modificare il file B.cpp
inserendoci #include "A.hpp" dato che ti serve per dereferenziare il puntatore
che ricevi come parametro. Ovviamente la funzione di B non potrà essere
implementata inline in B.h ma dovrai implementarla in B.cpp.
--
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
Newsgroup: it.comp.lang.c++
Titolo: domandina

... sono nuovo da queste parti ... per cui non odiatemi per la seguente
domanda (rispondete per favore): Cos'é un OT? Che significa? Intendo
seriamente ...


La tua domanda e' OT :-)
OT sta per Off Topic, e vuol dire fuori argomento, cioe' non
corrispondente al "manifesto" che definisce lo scopo del newsgroup. Il
nostro manifesto lo ha appena postato APaella in un thread intitolato
"SE CHIEDI AIUTO PER COMPILATORI VARI LEGGI QUI" e si trova in ogni caso
qui: 
http://beatles.cselt.it/news-it/manif/it.comp.lang.c++.txt
Ciao,
Nicola

+----------------------------------------------------------------------
Ecco il manifesto del gruppo, presentato da:
Nicola Musatti <Nicola.Musatti*ObjectWay.it>
Poiche` si sono resi disponibili newsgroup in italiano dove trattare
argomenti
specifici delle piattaforme piu` popolari, l'area di interesse del
gruppo
it.comp.lang.c++ viene ristretta al linguaggio C++ come descritto
dallo
standard ISO e dai testi, di B. Stroustrup e altri, che ne hanno
costituito il
riferimento prima dell'adozione dello standard.
In particolare gli argomenti comunemente trattati sono:
 - Utilizzo dei costrutti del linguaggio e della libreria standard;
 - Disegno e implementazione di algoritmi e pattern in C++;
 - Discussione di idiomi, ovvero tecniche di uso comune del
linguaggio;
 - Linee guida per la codifica in C++;
 - Ambiguita` o incertezze delle definizioni dello standard;
 - Tecniche per la realizzazione di codice portabile;
 - Conformita` allo standard di un particolare strumento;
 - Confronto tra strumenti per quanto riguarda le funzionalita` o le
prestazioni intese in termini generali;
Il gruppo non tratta piu` argomenti specifici di piattaforme
hardware/software, di ambienti di sviluppo o di librerie, per i quali
sono
disponibili i seguenti gruppi:
it.comp.programmare.win32
it.comp.os.linux.development
I siti di Microsoft e Inprise gestiscono newsgroup (in inglese)
specifici per
i loro prodotti.
Le FAQ di questo gruppo si trovano su 
http://www.programmazione.it
---
"Apaella" Antonello Pasella 
a.pa...@studenti.to.it
Studente di Ing.Informatica al IV anno
svolgo attualmente attività di formazione professionale
Home page non ancora attivata...
---
"Apaella" Antonello Pasella 
a.pa...@studenti.to.it
Studente di Ing.Informatica al IV anno
svolgo attualmente attività di formazione professionale
Home page non ancora attivata...
Newsgroup: it.comp.lang.c++
Titolo: Classe tutta contenuta in un .h

Utilizzo spesso una classe tutta contenuta in un file che si chiama log.h
La classe è definita nel seguente modo:
class MyLog: public GenericLog
{
public:
     MyLog()
     {
     }
     ~MyLog()
     {
     }
     BOOL WriteLine(BSTR newLine)
     {
        -----
     }
     BOOL ReadLine()
     {
         -----
     }
};
Il problema è che il Visual C++ 6.0 non mi da l'intellisense sulle istanze
di tale classe... ho provato a splittare le dichiarazioni delle member
functions dalle definizioni definendole dopo come
BOOL MyLog::WriteLine(BSTR newLine){-----}
ma ottengo numerosi errori in fase di linking. Dove è l'errore? come faccio
ad avere l'intellisense?
Grazie!

Ciao,
forse basta separare la definizione (in .h) dalla implementazione (in .cpp).
Ciao

Newsgroup: it.comp.lang.c++
Titolo: problema con stringhe

Salve,
ho un problema con le stringhe sul borland c++ 3.
Ho una editbox da cui devo estrarre il valore che poi
devo passare ad una funzione che accetta come argomento
un parametro di tipo 'const char *'.
Purtroppo la stringa (ovvero il campo text dell'oggetto
edit box) è in formato AnsiString e non riesco a convertirla
un puntatore a char.
Come posso fare??
Grazie di tutto
Jimmy
-- 
I'm walking towards dead end
I'm walking all alone
Two steps behind insanity
There's not starlight guiding my way
Trough this downward death row
Soon will be the time I have to go

non vorrei dire una stupidaggine, ma hai provato a passare come parametro:
text1->text.c_str()   ?
Jimmy ha scritto nel messaggio ...


Come posso fare??
Comunque se tu volessi convertirla, tieni conto che AnsiString è
basata su una indicizzazione che parte da 1.
Se la tua AnsiString è Str Str[1] conterrà il primo carattere ecc.
Per convertirla potresti fare :
char* c=new char[Edit1->Text.Length()+1];  // il +1 è per il
terminatore :'\0'
unsigned int i;
for (i=0;i<Edit1->Text.Length();i++)
     c[i]=Edit1->Text[i+1];
c[i]='\0'; 
e poi chiamare la tua func(c);
e poi 
delete[] c;
...ma il modo migliore è usare c_str()  .
Ciao.Enzo.

Newsgroup: it.comp.lang.c++
Titolo: sintassi funzion c++

memcpy
strcpy
memcmp
strcpy
non conosco la sintassi di queste funzioni
ognuna prevede tre parametri in ingresso mi pare...
grazie a chi mi da una mano
(sul mio manuale non sono spiegate)



strcpy
Immagino strcmp....
int strcmp(const char *s1, const char *s2);
s1<s2  ---> ritorna < 0
s1==s2  ---> ritorna 0
s1>s2  -->        >0
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

oro
grazie1000
Newsgroup: it.comp.lang.c++
Titolo: Problema con Visual Studio++

Mi capita questo con Visual Studio97:
Se apro un qualsiasi tool della faniglia che uso l'ambiente integrato
Visual Studio (visual c++, visual j++ o visual Interdev) non mi
funzionano i sottomenu dell'ambiente integrato stesso. Mi spiego
meglio:
se dopo essere entrato nell'ambiente di sviluppo apro il menu file
trovo che ci sono due sottomenu 
 
   "recent files" e "recent workspaces"
selezionandoli nessuno dei due apre il proprio sottomenue cosi' pure
per qualsiasi voce a menu che debba aprire a sua volta un sottomenu.
Tutto il resto funziona nomralmente. Che accade? Ho provato a
disinstallare e a reinstallare il tutto ma inutilmente.
Cio' mi capito sul pc dell'ufficio dove ho messo Win98 ma a casa dove
ho sia win95 e win98 cio' non avviene. Boh!
Qualche suggerimento?
Alberto Rausa

 
Putroppo niente, ma auguri ( x W98 naturalmente).
Zec
Newsgroup: it.comp.lang.c++
Titolo: iostream e bufferizzazione

come rendere efficiente questa classe che gestisce un file?
class StreamText: public Text
{
protected:
 mutable std::ifstream* file;
 mutable int virtual_size;
public:
 StreamText(std::ifstream* in);
 virtual ~StreamText();
 virtual char operator[](int index) const;
 virtual int size() const;
 virtual std::string substr(int begin, int pos) const;
 virtual void close();
 int no_cached_size() const;
};
ora la cosa fondamentale č l'implementazione di
char operator[](int index) const
{
     if(index == size()-1)
     {
          return JOLLY;
      }
     else
     {
          file->seekg(index);
          char c[1];
          file->read(c, 1);
          return c[0];
     }
}
che forse non č affatto efficiente. Ma pensavo che file gestisse di per se
un buffer interno, invece cosě non deve essere a vedere dall'efficienza di
questa classe.
Come si puň far si che usi un buffer interno ifstream?

 
una soluzione che mi viene in mente è quella di caricare l'intero file 
su una stringa ....
ifstream input(nomefile);
ostringstream prebuffer;
buffer << input.rdbuf();
string buffer(prebuffer.str());
dovrebbe essere molto efficiente.
-- 
Hai recensioni nel cassetto di musica, cinema, letteratura,fumetti??
Ascolta e pentiti e se hai tempo vergognati
http://tonysuper.altervista.org

> buffer << input.rdbuf();
errore prebuffer << input.rdbuf();



però con file molto grossi non va bene...e poi ha un limite di memoria
std::string?

 std::string?
sul mio computer circa 1500 megabytes ... pero' dopo i primi 500 inizia 
a swappare .. sul tuo non so ;-)
la libreria standard comprende delle classi chiamate streambuf
e degli iteratori chiamati ostreambuf_iterator e istreambuf_iterator ..
prova a documentarti un po su queste...


 std::string?
#include<iostream>
main()
{
    using namespace std;
    cout << string().max_size() << endl;
}
Con gcc 3.3.4, da` 1073741820. Sarebbe 1Gb (2^30) meno 4 byte.
-- 
alef

 };
Togli la parola "virtual" da tutti i metodi che non prevedi di 
ridefinire, lasciandola tuttavia per il distruttore se la classe Text o 
la classe StreamText ha almeno un metodo virtuale.
Se il sistema operativo target (o meglio, per ogni sistema operativo 
target che) supporta i file mappati in memoria (Memory-Mapped Files), 
usane uno per l'implementazione.
Siccome si tratta di una caratteristica non standard, fai qualcosa del 
seguente tipo:
#if WIN32
// Uso di un MMF di Win32
#elseif LINUX
// Uso di un MMF di Linux
#else
// Uso di uno stream della libreria standard del C++
#endif
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila