mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: [OT] Compilatore Mingw

Salve a tutti, c'è qualcuno che usa il compilatore
Mingw e mi sà dire quali file si devono scaricare?
e che differenza ci sono tra file.src e quelli bin?
per una configurazione minima?
Grazie a tutti
Ciao


scarica devc++ così mingw viene installato automaticamente e hai anche 
un ottimo ide
-- 
e-mail: 
robiweb...@libero.it
page: 
http://www.robiweb.135.it
"Tre Anelli ai Re degli Elfi sotto il cielo che risplende,
Sette ai Principi dei Nani nelle lor rocche di pietra,
Nove agli Uomini Mortali che la triste morte attende,
Uno per l'Oscuro Sire chiuso nella reggia tetra"
J. R. R. Tolkien - Il Signore degli Anelli


Se vuoi un ambiente visuale scaricati Dev-C++
Se vuoi un ambiente per compilazione cross-platform scaricati:
MinGW-3.1.0-1.exe (compilatore)
mingw32-make-3.80.0-3.exe (make)
msysDTK-1.0.1.exe (ambiente di sviluppo unix)
MSYS-1.0.9.exe (l'ambiente di base, se lo lanci all'ultimo ti configura tutto)
gdb-5.2.1-1.exe (debugger: necessario solo se vuoi debuggare)
tcltk-8.4.1-1.exe (tcltk: spesso non necessario)
Direi che i primi 4 sono necessari.
Bye

[...]
.. grazie 1000 a tutti!
Ciao
Newsgroup: it.comp.lang.c
Titolo: Help indirizzo memoria video

Salve
Sono disperato, ho implementato il seguente codice e il compilatore mi
segnala un warnig dicendo che 0xa0000 è una costante di tipo long.
void PutPixel(int x, int y, int color)
{
 unsigned char far* ScreenP;
 ScreenP = ((unsigned char far*)0xa0000);
 memset(ScreenP + ( x + ( y * 320 )),color,1);
}
A parte questo preche se inserisco un pixel nella memoria non vedo apparire
niente a video?
Se memset inserisce in memoria ,esite qualcosa per leggere?
Grazie
Saluti Mirko

you wrote :
#Se memset inserisce in memoria ,esite qualcosa per leggere?
Perche' "memset" ?
A parte il fatto che se e' "far" dovresti usare la versione far della
funzione, ma poi il valore puntato da un puntatore si aggiorna/legge
mediante l'operatore *.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------

}
Per non avere il warning devi scrivere 0xa0000L
Marco

niente a video?
Devi essere in modalità grafica (la migliore in questo caso è la
320x200x256, modalità numero 13h del BIOS). Per un utilizzo professionale la
funzione deve essere molto ottimizzata.
Comunque tu per ora lascia stare la grafica (non sai neanche come assegnare
valori alle variabili....) e dedicati alle nozioni base della programmazione
C.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

you wrote :
#0xA0000 E' un valore long.  Comunque l'indirizzo della memoria video č
Non si puo' dire che 0xA0000 sia un valore long.
E' un valore long su macchine in cui l'int e' lungo 2 byte, mentre su
quelle a 32 bit e' normalmente un int.
#A000:0000, quindi dovresti scrivere:
#unsigned char far* ScreenP = (unsigned char far*) 0xA0000000;
Che c'entra ???
La struttura segmento:offset e' tale da poter ottenere l'indirizzo
come segmento*16 + offset cioe' 0xA000:0x0000 e' 0xA000 * 16 + 0x0000
cioe' 0xA0000.
#Comunque tu per ora lascia stare la grafica (non sai neanche come assegnare
#valori alle variabili....) e dedicati alle nozioni base della programmazione
Ehmm.... ;)


Ehmm.... ;)
Si, lo so, sono stato un po duro, ma mi seccano le persone che passano al C
SOLO per poter fare grafica e giochi.

Newsgroup: it.comp.lang.c
Titolo: Liste e Puntatori

        member of Zooper Inc 1998
--
Posted from 
ro...@dedalus.it
 [194.243.132.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

 Scusate eventuali errori di ANSI, sintassi ecc....
Unico errore di sintassi che mi e' balzato agli occhi e' l'uso di "data"
come se fosse un nome di tipo, devi invece sempre usare "struct data"
(in C; il C++ e' diverso) a meno che tu non li renda sinonimi con typedef.
Alex


Newsgroup: it.comp.lang.c
Titolo: Sintassi sconosciuta

Qualcuno sa spiegarmi cosa significa questa sintassi?
int main(void)
{
    int array[10];
    array[1,2] = 1;
    exit(0);
}
Non capisco come vengono interpretati i due valori separati da virgola nell'indice del vettore.
Ringrazio anticipatamente.
 
 
--
Posted from [194.21.44.3]
via Mailgate.ORG Server - 
http://www.mailgate.org

 Non capisco come vengono interpretati i due valori separati da virgola nell'indice del vettore.
Credi sia un errore di sintassi.
EMG



No.  E' un "comma operator"; "1,2" in C ha il valore "2".  Guarda:
MLO@pcdf0 15 $ cat foo.c
#include <stdio.h>
int main() {
  int i, array[10];
  for (i=0; i<10; i++) array[i] = i;
  for (i=0; i<10; i++) printf("%2d ", array[i]);  puts("");
  array[1,2] = -1;
  for (i=0; i<10; i++) printf("%2d ", array[i]);  puts("");
  return 0;
}
MLO@pcdf0 16 $ gcc -ansi -pedantic -Wall -o foo foo.c
foo.c: In function `main':
foo.c:8: warning: left-hand operand of comma expression has no effect
MLO@pcdf0 17 $ ./foo
 0  1  2  3  4  5  6  7  8  9 
 0  1 -1  3  4  5  6  7  8  9
MLO@pcdf0 18 $ 
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

    array[1,2] = 1;
Significa array[2].
L'1 viene valutato e scartato. Il risultato dell'espressione e' 2.
Marco

 No.  E' un "comma operator"; "1,2" in C ha il valore "2".  Guarda:
Azz! E' vero.
EMG

i due valori separati da virgola nell'indice del vettore.
I valori vengono calcolati da sinistra a destra e la virgola causa un
"sequence point", ovvero un'interruzione temporale delle operazioni,
in cui, semplifico, non c'e' nessun calcolo in sospeso e si e' pronti
per iniziarne un altro. In pratica i valori restituiti sono
nell'ordine 1 e 2, ma ovviamente viene considerato in modo
significativo solo l'ultimo.
Ne hai conferma, considerando questo piccolo esempio :
#include <stdio.h>
main()
{
    int a = (1,2,3,4,5) ;
    printf( "%d\n", a ) ;
}
--
Andrea Laforgia
andrea_...@bigfoot.com

Credi sia un errore di sintassi.
Pero' viene compilato senza problemi e setta l'array[2] uguale ad 1.
ciao
Newsgroup: it.comp.lang.c
Titolo: occorrenze di una parola in un testo

Salve a tutti, ho bisogno del codice di un programma C che legge da stdin 
una parola p (cioč una stringa senza blanks) ed una sequenza di caratteri T 
(testo) fino ad EOF.
Il programma stampa su stdout il numero di occorrenze della parola p come 
parola nel testo T, cioč conta le occorrenze di p che non sono precedute o 
seguite da un carattere alfanumerico.
In C sono una frana. Mi serve l'aiuto di qualcuno di voi. Un saluto MARCO

Cerca in rete dei riferimenti agli algoritmi di Knuth-Morris-Pratt e
Boyer-Moore-Horspool.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Lettura in modo binario o testo ?

Ciao a tutti,
devo realizzare un compressore;  preso in input un file di testo, il
programma deve convertire ogni carattere nella sua codifica Ascii BINARIA e
poi applicare l'algoritmo di compressione, trattando i singoli bit.
Qualcuno saprebbe darmi qualche consiglio generale su come procedere ?
Più precisamente:
- qual'è la differenza pratica tra la lettura (fopen) in modo testo o in
modo binario?
- quale funzione di lettura mi conviene usare? getc(), fgets(), fread() ???
- una volta letto un carattere c in un modo o nell'altro, come si può
accedere a uno dei suoi bit? E' necessario per forza usare gli operatori &,
| ecc. ?
- una volta "estratto" un bit dal carattere letto, come lo si può usare?
Voglio dire, nel seguito del programma lo devo trattare come un int, come un
char... ?
Grazie mille.
Ale

 int, come un char... ?
  Come preferisci. Diciamo che l'optimum sarebbe /int/.
	Alla prossima,
		Marco

Newsgroup: it.comp.lang.c
Titolo: funzione senza parentesi

Salve a tutti, se dichiaro una funzione del genere:
void insulsa(void)
{
        printf("Ciao!\n");
        return;
}
e la chiamo con:
insulsa();
naturalmente mi stampa Ciao ma se scrivo:
insulsa;
il compilatore non segnala errori o warnings e inesecuzione non succede
nulla.
Qualcuno mi sa spiegare come va intesa una chiamata ad una funzione senza
parentesi?
Grazie.

 nulla.
Non e` una chiamata a funzione. Lo statement e` la valutazione di un
espressione il cui valore e` il puntatore alla funzione. Per ottenere la
chiamata devi applicare l'operatore () a quell'espressione.
Concettualmente e` la stessa cosa di questo codice:
int main(void) {
        int i;
        i; /* Statement lecito ma senza alcun effetto */
        return 0;
}
Luca
-- 
Home: 
http://kronoz.cjb.net
"La mia teoria scientifica preferita e` quella secondo la quale gli 
 anelli di Saturno sarebbero interamente composti dai bagagli andati 
 persi nei viaggi aerei." -- Mark Russel
Newsgroup: it.comp.lang.c
Titolo: Aiuto: System, Spawn & Co

Salve amici del NG
Ho due applicazioni, A (applicazione DOS) e B (applicazione Win).
A lancia B in maniera asincrona, cioč ad un certo punto A lancia B e poi
prosegue senza preoccuparsi che B sia terminato oppure no.
B č un'applicazione con finestre che deve avere una vita propria e si
sincronizza con A attraverso un file di stato.
Ho provato ad usare System (come suggerito in un Vs post precedente) e
funziona sulle macchine W98 ma non su W2000.
Vorrei usare spawn con il parametro P_NOWAIT ma ottengo solo un errore in
fase di esecuzione sia su W98 che su W2000 (inoltre il mio manuale del C
dice che questo parametro non č al momento disponibile... cazzate !!, perchč
lo mettono, allora ???)
Qualcuno sa suggerimi un'alternativa ? PER FAVORE !!!!!!!!
Grazie
Andrea Foresti

 funziona sulle macchine W98 ma non su W2000.
con W2000 leggiti i riferimenti a cmd e a start
se usi System ti verrŕ caricato una emulazione di command (w2000 non ha un
suo e proprio dos)
START ["titolo"] [/percorso] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [comando/programma]
      [parametri]
Avvia una nuova istanza dell'interprete dei comandi di Windows 2000
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] stringa]

Newsgroup: it.comp.lang.c
Titolo: Compressore mp3

Salve a tutti,
a scopo di studio vorrei scrivere un semplice compressore wav to mp3.
Mi sapreste dare qualche dritta?
Ci sono dei sorgenti da scaricare, qualche tutorial da consultare?
Qualche "How to write an mp3 encoder" (magari in delphi ma anche in c/c++
andrebbe bene). Non cerco l'efficenza ma un sorgente documentato od
informazioni il più possibile chiare.
Vi ringrazio per l'attenzione!
Ciao.
Lorenzo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 andrebbe bene). Non cerco l'efficenza ma un sorgente documentato od
A parte il crossposting!!!!! Ma non solo sei *OT* (c++ NON E' C) prova e
postare (tanto uno in più) su it.comp.programmare o
it.comp.programmare.win32.
Timothy Redaelli
Inc@zzed Version 1.1

 Ma non solo sei *OT* (c++ NON E' C)
grazie dell'illuminazione, non ti č venuto il dubbio
che c'č stato un errore nell'inviare?
it.lang.c ed it.lang.c++ dal webform di mailgate
sono indistinguibili: scrivi il secondo e ti torna sempre il primo.


 ha scritto nel messaggio
news:9eb5f1222abdec762a...@mygate.mailgate.org...

Argomenti compresi:
  - Il linguaggio in generale;
  - Gli algoritmi;
  - Le ottimizzazioni;
  - La portabilita`;
  - I sistemi di sviluppo.
Non mi sembra che la tua richiesta faccia parte di una di queste condizioni,
o sbaglio?
Forse avresti piů successo (oltre che sui due precedenti) su
it.comp.musica.mp3 (attento che č moderato)
P.S. Usa 
usenet.iol.it
 per mandare i msg.
P.S.2: Prova con questo: it.comp.lang.c%2B%2B
Ciao
--
Timothy Redaelli
Non te la sarei mica presa a male :-)

>   - Gli algoritmi;
infatti parlava di algoritmo per encoder mp3 con delphi (magari leggi meglio
prima)
non capisco tutta questa fretta di rompere le scatole alla gente...


A parte il discorso dell'OT o meno, hai una minima idea di come
funzioni l'algoritmo di compressione per gli mp3? Non e' 1 algoritmo,
ma sono una serie di algoritmi in cascata: alcuni di compressione (3
mi pare) e altri psicologici (ovvero tolgono parti del segnale che tu
normalmente non riusciresti a percepire).
Il posto giusto su cui chiedere e' un NG in cui si parla appunto di
mp3 :)
Mox :)

Newsgroup: it.comp.lang.c
Titolo: aiuto: itoa per i float

ciao,
    devo scivere su un file di testo un tipo float ma non sono riuscito a
trovare una funzione che lo converta in char (simile a 'itoa' per gli
interi).
Qualcuno sa dirmi come posso fare?
grazie mille,
    Max

 Qualcuno sa dirmi come posso fare?
   La funzione standard ISO fprintf() fa al caso tuo: consulta il 
manuale del tuo compilatore per maggiori informazioni.
	Alla prossima,
		Marco

 Qualcuno sa dirmi come posso fare?
Prova con la funzione fprint().
EMG
Newsgroup: it.comp.lang.c
Titolo: Aiuto colori !

Salve,
        Non esiste proprio nessun modo per cambiare il colore delle parole
stampate sullo schermo  dal file eseguibile ?
Grazie a tutti quelli che risponderanno .

[...]
... io uso il djgpp.prova con cprintf, guarda nell'help
del rhide.c'era un altro comando per colorare ma non lo
ricordo.cmq i colori non sono standard in C.
Ciao

I colori non sono standard ma prova cosi':
#include <stdio.h>
#include <conio.h>
int main () {
    textcolor (RED);
    textbackground (BLUE);
    cprintf ("STRINGA COLORATA\n\r");
    return 0;
}
PS cprintf richiede \n\r non solo \n per andara a capo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:ed9f3179c91b2a08bdd...@mygate.mailgate.org...


Newsgroup: it.comp.lang.c
Titolo: gestire passwd in c

Ragazzi ho cominciato non da molto a programmare in c ...........
avrei bisogno di un favore
se qualcuno mi sa rispondere !!!!!!!!!!!!!!
come faccio a gestire la passwd in c il sistema operativo che uso
(linux) ..........
e se possibile farla anche criptata
vi ringrazzio in anticipo della vostra risposta
                                           by adry


buona fortuna

 polimorfica ;-)
Aggiungere un numero al codice ascii non e' purtroppo un buon modo per
criptare, per fortuna pero' il motore di crittografia c'e' gia'
implementato. E' infatti possibile fruttare attraverso una primitiva
l'algoritmo di cifratura che linux usa per le pw di sistema.
Prova a cercare sul manumale passwd o qualcosa di simile e dovresti
trovare (oltre ai comandi shell) anche la definizione della primitiva
pronta per essere richiamata da C.
Purtroppo non ho sottomano un sistema linux e in questo momento non ti
posso aiutare di piu'.
Ciao.
-- 
     (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. |

 wrote:
[ snip ]
FS>E' infatti possibile fruttare attraverso una primitiva
FS>l'algoritmo di cifratura che linux usa per le pw di sistema.
$ man crypt
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

                                            by adry
  Raga io intendevo una pass su un programmino creato da me
che al suo interno con dei case ' ' va richiamare anche il programma,
che pero non deve essere modificato da nessuno cioe quasi nessuno solo
chi conosce la pass !!!!!!
 grazie a tutti
ciaooooooooooo


ICQ #34602650

   si
Tecnica profondamente improbabile.


 ICQ #34602650
  si
------------------------
Newsgroup: it.comp.lang.c
Titolo: do-while

Salve a tutti.
Ormai sono due giorni che sto "impazzendo", con il libro: "The C
programming language - second edition", ed ovviamente mi sono
impallato, perchč non riesco a capire una cosa.
Io ho scritto un codice di questo tipo (un pň piů articolato: ci sono
switch tra altri switch, questa ne č una semplificazione):
do
{
	printf("1\tdammi un nome in codice\n");
	printf("2\tnon darmi il nome\n);
	switch(sw)
	{
	case1:
 
		printf("Ok che nome vuoi darmi\n");
		scanf("%s", &nome1);
		break;
	case2:
		printf("Allora continuero' a chiamarmi Giulia\n");
		break;
	default:
		printf("Senti non mi far perdere tempo\n");
		break;
	}
}
while(sw!=1 || sw!=2);
Ovviamente io voglio che quando si esegue il default, il programma
ricicli e riparta e che quando l'utente preme 2 si debba uscire dal
ciclo. Ma cosi non succede!
Allora ho fatto cosě, ho tolto il do ed al suo posto ho messo while ed
alla fine al posto del while ci ho messo un if. Cosě:
while(sw!=1)
{		
		stesse righe di prima
if(sw==2) break;
}
E cosě funziona, io vorrei capire la prima volta dove ho sbagliato. So
che per voi questa č una domanda assurda e molto semplice, e che io
avrei potuto scrivere lo stesso codice in 1000 modi migliori, ma
purtroppo essendo alle prime armi non mi capacito. Se io dico al while
che mi deve ciclare se sw č diverso da uno o da due gli ho detto che
mi deve USCIRE dal ciclo se io vado a copiare in sw un valore di 1 OR
di 2 e che deve rimanere nel ciclo negli altri casi....
Grazie a tutti per il tempo che avete perso a leggere questo post.
Actarus

 while(sw!=1 || sw!=2);
ecco, l'errore è nella condizione del while.
Pensaci un po' su che fa bene.
Ciao
n.b.:
while ripete se e solo se la condizione è vera.
-- 
none

 while ripete se e solo se la condizione è vera.
Quindi mi stai dicendo che siccome io ho messo una OR, una delle due
condizioni sarà sempre vera?
Adesso ho posto:
while(sw>2);
quindi se l'utente non sceglie 1 o 2 mi va in default e ripete il ciclo,
altrimenti esce.
Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 altrimenti esce.
Non e` del tutto equivalente, l'utente potrebbe inserire zero o un
numero negativo (se /sw/ e` signed) causando la terminazione del ciclo
senza che sia stato specificato un valore valido per /sw/.
Luca
-- 
Home: 
http://kronoz.cjb.net
"Su cio` di cui non si puo` parlare e` bene tacere".
 Ludwig Wittgenstein
Newsgroup: it.comp.lang.c
Titolo: Un aiutino...

Dovrei scrivere un programma che legge quanti file ci sono in una
determinata directory, dopo di ché rinominare ognuno di loro.
Domande:
Come faccio a sapere quanti file ci sono in una directory?
Come faccio a catturare i nomi di ognuno di loro?
Mille grazie

 ha scritto nel messaggio
news:YNnv6.23683$dJ6.2...@news.infostrada.it...

Se usi il DJGPP dai una occhiata a findfirst/findnext

Vedi per una certa FindFirst(...) e FindNext(...)  che rispettivamente
trovano il primo file e i successivi di una directory. Funzionano molto
bene, anche con dei filtri per il nome dei file (accettano anche caratteri
jolly). Ho usato queste funzioni tempo fa sotto Djgpp, non mi ricordo ne
l'header, ne se sono standard o no... vedi un po te!
Ciao, Dome

Newsgroup: it.comp.lang.c
Titolo: C & Linux & Gestione video

Ho sempre usato C senza poter gestire il video, ma è possibile ? Se si come
? e sotto linux ?
Grazie ReDiCuori


A journey of a thousand miles must begin with a single step.
                -- Lao Tsu

On Thu, 07 Dec 2000 22:02:36 GMT, 
ReDiCuori (redicu...@NOSPAMlibero.it)
wrote:
| Ho sempre usato C senza poter gestire il video, ma è possibile ? Se si come
| ? e sotto linux ?
 
 man curses, man ncurses.
 f/up su it.comp.os.linux.development.
-- 
Emmanuele Bassi         |     [ 
http://digilander.iol.it/ebassi/linux/
 ]
   (Zefram)             |                     [ 
emmanue...@iol.it
 ]
                        |         WARNING: `From:' Email Address is FAKE
GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C

Newsgroup: it.comp.lang.c
Titolo: [REQ] Esempio su Extern

Sto cercando di crearmi una dll da usare sotto visual basic. Per far
cio' ho usato ovviamente la funzione extern.
Tuttavia, anche se non ho problemi con variabili di tipo long, non
riesco assolutamente a farmi ritornare una stringa (cosa che invece mi
serve). Mi potete fare un esempio di una routine "esportata" che
ritorna una stringa? (intesa come char).
P.s. scusatemi per le eventuali bestialita'. Sono un neofita del c :)
Fasco

 ritorna una stringa? (intesa come char).
	news:it.comp.programmare.win32
   Hint: /extern/ non c'entra proprio nulla con il tuo problema, molto 
meglio
	__declspec( ddlexport )
	Alla prossima,
		Marco

	__declspec( ddlexport )
__declspec( dllexport )
;)
Newsgroup: it.comp.lang.c
Titolo: Bubble Sort

Sapete gentilmente dirmi come mai nella compilazione della seguente
funzione:
void bubble_sort(int vett[],int dim)
{
	int scambia;
	for (int i = 0;i <= (dim-1);i++)
		for (int j = dim;i >= 2;j--)
		{
			if vett[j] < vett[j-1] then
			{
				scambia = vett[j];
				vett[j] = vett[j-1];
				vett[j-1] = scambia;
			}
		}
}
ottengo un'errore del tipo:
" error C2061: syntax error : identifier 'vett' "
Preciso che la compilazione avviene con il MsVC++ 6.0
ciao e grazie 
rhymes
rhy...@tiscalinet.it
rhymes
rhy...@tiscalinet.it

 " error C2061: syntax error : identifier 'vett' "
  Perche` usi una sintassi impropria del C:
	if(vett[j]<vett[j-1]) {
		/* stuffs */
	}
	Alla prossima,
		Marco

			if vett[j] < vett[j-1] then
                        if ( vett[j] < vett[j-1] ) 
senza "then".
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]
-----------------------------------------------------

                         if vett[j] < vett[j-1] then
Hai dimenticato le parentesi e messo un then che non c'entra niente.
EMG

Eh eh...si nota cosě tanto che vengo da un mondo pascal e delphi ?
^_^
rhymes
rhy...@tiscalinet.it


> Eh eh...si nota cosě tanto che vengo da un mondo pascal e delphi ?
sembrava BASIC, o Visual Basic....
non conosco Delphi o Pascal  :)
--
ciao
xAERO
Newsgroup: it.comp.lang.c
Titolo: Operatori New e Delete

Supponiamo di aver definito una classe cpunto, che ha 2 metodi (print
e set).
Se dichiaro la una variabile in fase di progettazione funziona:
    cpunto punto;
    punto.set();
    punto.print();
Adesso vorrei provare ad istanziare la classe in runtime usando new ..
cpme devo fare?
ho provato:
    runtimepunto = new cpunto;
Ma mi dice che runtimepunto non è dichiarato!
Poi ho provato così(l'ho visto su un sorgente, ma non ho capito il
senso..):
    cpunto *runtimepunto;
    runtimepunto = new cpunto; //oggetto runtime punto di tipo cpunto
creato all'esecuzione del programma!
non mi da errori di compilazione, ma se poi provo a fare
    runtimepunto.set();
mi dice:
C:\CodeBlocks\Cpp4_New_Delete\main.cpp||In function `int main()':|
C:\CodeBlocks\Cpp4_New_Delete\main.cpp|80|error: request for member
`set' in `runtimepunto', which is of non-class type `cpunto*'|
||=== Build finished: 1 errors, 0 warnings ===|
Come si fa a usare new?
Di seguito riporto il codice completo:
/
**************************************************************************
#include <iostream>
using namespace std;
//Pag332 cap 11.2 libro "Come programmare in linguaggio C e C++
(superiori)
//=================================================
// CLASSE
// Descrive l'oggetto.
//Definisco una classe
class cpunto
{
    public:
      cpunto();   //Costruttore
      ~cpunto();  //Distruttore
      void Set();
      void Print();
    private:
      float x,y;
};
//Costruttore : inizializza le variabile quando dichiaro una variabile
di questo tipo
cpunto::cpunto()
{
    x=0;
    y=0;
}
//Distruttore : potrebbe servirmi per rilasciare una porzione di RAM
allocata dinamicamente.
// In .net credo che si arrangi il Garbage collector a rilasciarla
eventualmente.
cpunto::~cpunto()
{
  cout << "Oggetto distrutto" <<endl;
}
//Definizione dei metodi della classe
void cpunto::Set()
{
   do
   {
     cout << "Inserisci il valore di X [0..100]: ";
     cin  >> x;
   } while (x<0 || x>100);
   do
   {
     cout << "Inserisci il valore di Y [0..100]: ";
     cin  >> y;
   } while (y<0 || y>100);
}
void cpunto::Print()
{
    cout << "Il valore di X: " << x <<endl ;
    cout << "Il valore di Y: " << y <<endl ;
}
//=================================================
int main()
{
    //TIPO //NOME
    cpunto punto; //oggetto punto di classe cpunto dichiarato in
progettazione
    //creazione dinamica dell'oggetto in memoria durante il runtime
    cpunto *runtimepunto; //l'istruzione new ritorna un riferimento
all'oggetto.
    runtimepunto = new cpunto; //oggetto runtimepunto di tipo cpunto
creato all'esecuzione del programma!
    cout << "Impostazione controllata delle variabili di una classe"
<< endl;
    punto.Set();
    punto.Print();
    //runtimepunto.set(); ERRORE!
    return 0;
}

 e set).
<etc>
C != C++
Newsgroup: it.comp.lang.c
Titolo: esercizio K&R


The majority of the stupid is invincible and guaranteed for all time.
The terror of their tyranny, however, is alleviated by their lack of
consistency.
                -- Albert Einstein

 efficace ....
Prova con l'operatore xor (^). l'xor con 0 lascia inalterato mentre
quello con 1 inverte.
EMG

 EMG
ciao


In questo sito trovi tutte le soluzioni a tutti gli esercizi del K&R...
http://users.powernet.co.uk/eton/kandr2/index.html
Ciao Marco.
Antonio barbone ha scritto nel messaggio ...


In questo sito trovi tutte le soluzioni a tutti gli esercizi del K&R...
NON RIPORTARE TUTTO IL MESSAGGIO NELLE RISPOSTE !
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."


Scusa ero convinto di aver cancellato il messaggio d'origine.
Ciao.


The great question that has never been answered and which I have not
yet been able to answer despite my thirty years of research into the
feminine soul is: WHAT DOES A WOMAN WANT?
                -- Sigmund Freud

Newsgroup: it.comp.lang.c
Titolo: "problemi di linguaggio"....

ciao!
ho il seguente problema:
devo scrivere un programma in c per pilotare un motore passo
(bipolare) dalla parallela.(s.o linux)
* * * *   /*sono i pin dove ho collegato i fili del motorino*/
8 4 2 1
se nel codice scrivo:
outb(3,portaout)  /*accedo  ai pin relativi al'enable e direction */
usleep(1000000)
se poi volessi cambiare lo stato di questi pin... come lo scrivo????
grazie!

 ha scritto nel messaggio
news:8dd8fd8b.0405...@posting.google.com...

spiritoso...

 (bipolare) dalla parallela.(s.o linux)
Ergo, it.comp.os.linux.development
qui si parla solo di C standard.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

 se poi volessi cambiare lo stato di questi pin... come lo scrivo????
http://bigasterisk.com/parallel
http://www.kernelnewbies.org/documents/kdoc/parportbook/api.html
http://people.redhat.com/twaugh/parport/
it.comp.linux.development
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: problema...campo minato :-)

Ciao a tutti...ho un piccolo problema...sto provando a realizzare (come
esercizio) il gioco campo minato in c...il fatto č che nel famoso gioco
winzozz, se si scopriva una casella bianca, tutte quelle vicine subivano la
stessa sorte (scoprendosi fino a quando non c'erano piů caselle adiacenti
bianche). Avendo realizzato il tutto con una matrice di strutture (che
tengono conto di che tipo č ogni casella che si va a scoprire e con quante
mine confina), mi servirebbe una dritta per implementare una funzione che
scopra appunto tutte le caselle "bianche"...pensavo a una sorta di visita in
ampiezza, ma anche in questo caso non saprei dove trovare il codice...
Grazie a tutti per l'aiuto e spero di non essere stato troppo OT...
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

ampiezza, ma anche in questo caso non saprei dove trovare il codice...
non dovrebbe essere difficile:
fai una funzione che controlla se una casella č bianca:
se č bianca controlli le 8 che gli stanno intorno in modo ricorsivo
se no restituisce 0

Newsgroup: it.comp.lang.c
Titolo: Numero binario

Salve a tutti. Avrei bisogno di sapere come leggere un numero binario su una
periferica  e anche modificarlo dopo la lettura e rispedirlo alla
periferica.Inoltre come posso collegare il computer a questa periferica che
e' un circuito integrato. Vi ringrazio per una eventuale risposta.

 Vi ringrazio per una eventuale risposta.
Prego, sei OT. Vai su un altro NG.
Ciao!
Azathot

Newsgroup: it.comp.lang.c
Titolo: Codice sorgente printf

Salve a tutti,
c'è qualcuno che può postarmi o dirmi dove poter trovare il codice sorgente
della funzione printf()?
Ciao e Grazie.

 sorgente della funzione printf()?
<code>
#include <stdio.h>
#include <stdarg.h>
int my_printf(char * format, ...)
{
    va_list ap;
    int n;
    va_start(ap, format);
    n = vprintf(format, ap);
    va_end(ap);
    return n;
}
</code>
Una possibile implementazione la trovi qui:
ftp://ftp.gnu.org/pub/gnu/glibc/
Quello che a te interessera' sara' l'implementazione della vprintf 
probabilmente, la cui reale implementazione della vprintf() ovviamente 
dipende dal sistema sottostante.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 ha scritto nel messaggio
news:ard8od$q18$1...@pluto.sm.dsi.unimi.it...


della funzione printf()?
Il sorgente e' di circa 40 Kb ed e' prevalentemente in codice ASM .
Se ti intressa lo stesso te lo mando per email.

 >c'? qualcuno che pu? postarmi o dirmi dove poter trovare il codice

Newsgroup: it.comp.lang.c
Titolo: [OT] L'unione fa la forza (anche dei programmatori)

Salve a tutti!
Qualcuno conosce newsgroup, siti, ecc. dove i programmatori italiani
discutono di problematiche relative al lavoro di programmatore?
Non mi riferisco a questioni tecniche, ma a quelle legate alla professione.
Quello che sto cercando è un luogo dove acquisire/scambiare idee,
informazioni, opinioni, fare confronti, su tutto ciò (di non tecnico) che
riguarda i programmatori: qualità del lavoro (ambiente, remunerazione,
ecc.), problematiche specifiche per il dipendente e per il libero
professionista (questioni pratiche, legali, ecc.), e via dicendo.
Grazie

 Non mi riferisco a questioni tecniche, ma a quelle legate alla professione.
	it.comp.programmare
In certi periodi non si parla d'altro.
-- 
Baci,
Mony

Newsgroup: it.comp.lang.c
Titolo: Scrivere file

Ho la necessit�, di leggere, quando apro un file.txt, l'ultima cosa
scritta nel file, non scrollando all'ultima riga, ma dalla riga zero, e
sto cercando delle info su come scrivere su file.txt , non in append,
ma dalla  prima riga, la riga 0.  Ci sono delle librerie apposite?
Avete delle info?
Grazie
Ciao

 non in append, ma dalla  prima riga, la riga 0.
Se usi modo "w" invece di "a" non comincia dall'inizio?

 Ho la necessitï¿œ, di leggere, quando apro un file.txt, l'ultima cosa

Direi che ti conviene caricare tutto il file in memoria, lavorarci in 
memoria e poi riscriverlo tutto sul file.
E.

news.tiscali ha scritto:

Le funzioni da usare sono fopen, fread, fputs, fprintf, fclose. Cerca "C
lLanguage file management" su Google. Il primo link che ho trovato:
http://www.exforsys.com/tutorials/c-language/file-management-in-c.html
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


in poche parole, devo scrivere in "append", non dalla fine
del file, ma dall'inizio. Aggiungendo, scrivendo dall'inizio
del file e non dall'ultima riga in fondo.
Grazie
Ciao

 fondo.
Leggi tutto, piazzi in testa e riscrivi.

 Leggi tutto, piazzi in testa e riscrivi.
Un'alternativa che risparmia ram potrebbe essere, per ogni scrittura:
1) Apri il file da modificare in lettura
2) Apri un file temporaneo in append
3) Scrivi il nuovo dato nel file temporaneo
4) Scrivi tutti i dati del file originario nel file temporaneo
5) Chiudi tutti e 2 i file
6) Elimini il file originario
7) Rinomini il file temporaneo con il nome del file originario
Vantaggio: usi sempre la stessa memoria di sistema
Svantaggio: se fra 6 e 7 va via la luce... Magari puoi ovviare chiamando 
il file temporaneo con un nome univoco, tipo come fa il VIM quando apre 
un file in lettura scrittura: file.txt lo chiami .file.txt.swp, così che 
se quando il tuo programma parte e trova il file temporaneo e non quello 
definitivo, può decidere se utilizzare il primo per inizializzare il 
secondo.
Giovanni
Giovanni
Newsgroup: it.comp.lang.c
Titolo: [?]Compilatori ANSI/ISO C99

Salve , ho letto sul catalogo della McGraw-Hill che sono state rilasciate
le specifiche ?  del  nuovo standard ANSI/ISO C99 , aggiungono al C classico
array a lunghezza variabile, puntatori rescrict? numeri complessi e tipi di
dati
per valori booleani , allora chiedo, quando saranno immessi sul mercato
compilatori  commerciali o free che supportano queste aggiunte del C99?
Grazie
Ciao  Roberto

compilatori  commerciali o free che supportano queste aggiunte del C99?
Credo che gia' ci siano.
Guarda 
www.comeaucomputing.com
.

roberto.bon wrote:

gcc
valori booleani                 - non sopportati
array a lunghezza variabile     - supportati
puntatorio restrict             - che so ??
numeri complessi                - supportati
Qualcuno ha maggiori info ?

... ci sarà anche il gcc con queste nuove aggiunte?
ciao  Roberto
Andrea Laforgia <xx...@xxxxx.xx> wrote in message
3b292b1a...@news.libero.it...


... ci sarà anche il gcc con queste nuove aggiunte?
Ovviamente si'.
Newsgroup: it.comp.lang.c
Titolo: Protezione di un disco

Cosa posso utilizzare e come per fare un programma che mi metta una
password
per accedere alle cartelle di un disco ?
Grazie

 wrote in message 38FE0FE7...@f.it...

ti dico un sistema banale,non so quanto ti possa servire:
rinomini (sotto dos)la cartella e nel nome metti un carattere con
codice ascii intorno al 197
Sotto windows la cartella viene visualizzata ma cliccandoci 2 volte
appare un messaggio di errore la cartella non esiste

Newsgroup: it.comp.lang.c
Titolo: [OT] Scrivere file PCX

Qualcuno mi può indicare una funzione (o dirmi dove potrei procurarmi
la documentazione) per scrivere un file pcx
avendo a disposizione un'array con i pixel e un'array con la palette.....
Graze
Ciao

 ha scritto nel messaggio news:97rml3$14v$1...@lacerta.tiscalinet.it...


Newsgroup: it.comp.lang.c
Titolo: [?] signal()

Intercettando un segnale con la funzione signal() quando si rida' il
controllo al prg riparte dal punto di interruzione o dalla riga successiva
la funzione stessa?
Per ora ho risolto il problema mettendo signal() in un punto strategico
all'interno del ciclo, ma non e' molto ortodosso xche l'intercettazione dei
segnali basta attivarla una volta sola.
Grazie.
Edoardo

 segnali basta attivarla una volta sola.
Brutta cosa, se si verifica l'eccezione prima che venga eseguita la
signal te la perdi...
In genere la signal e' la prima istruzione che si esegue, cosi' sei
sicuro di intercettare il segnale.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: intercettare pagine html "al volo"

buongiorno a tutti.
vorrei sapere se e' possibile intercettare le pagine html
che vengono caricate in ie4 o ie5, prima che vengano visualizzate
nel browser. l'idea sarebbe quella di modificare alcuni tag html
e poi visualizzare la pagina modificata. il linguaggio usato e' c++.
una possibilita' e' di scrivere un proxy che giri in locale. si
lancia questo proxy e si setta il proxy in explorer a 127.0.0.1
tuttavia questa possibilita' non va bene per il mio scopo: la
cosa deve essere totalmente trasparente, inoltre deve funzionare
anche con i file html salvati in locale.
qualcuno ha qualche idea a proposito?
ringrazio tutti anticipatamente.

>qualcuno ha qualche idea a proposito?
1) Sei OT
2) Prova a vedere se trovi il funzionamento di qualcuno di quei programmini
che rimuovono i banner, penso che facciano più o meno quello che devi fare
tu (non ne sono assolutamente sicuro).
Lanugo

 ha scritto nel messaggio
news:93ca2g$8g1$1...@pluto.sm.dsi.unimi.it...

Newsgroup: it.comp.lang.c
Titolo: shorcut







devo fare un programma d'installazione per un mio 
programmino, come faccio a creare dei 
collegamenti?



 ha scritto nel 
  messaggio 
news:00da01c05a33$fcf63640$195ff5d4@h0x7b8
...




devo fare un programma d'installazione per un mio 
  programmino, come faccio a creare dei collegamenti?


 


ci ragguagli sul tipo di compilatore che usi e che intendi per 
  "collegamenti"?







Collegamento a un file









devo fare un programma d'installazione per un mio 
programmino, come faccio a creare dei collegamenti? (a dei 
file)



 faccio a creare dei collegamenti?
In privato ti posto due doc che ti saranno utili, per tutti gli altri
sappiano che li ho presi su 
www.wotsit.org
, ma se me li chiedono non ci
sparo....
-- 
Ciao, gengisdave
http://digilander.iol.it/gengisdave

Newsgroup: it.comp.lang.c
Titolo: undefined reference to `function'

Salve a tutti, sono nuovo di qui.
Sto imparando a programmare in C.
Sono all'inizio e mentre compilo un programma mi dą l'errore come da 
oggetto.
In pratica pur avendo aggiunto la linea #include <math> mi dą l'errore :
# gcc -o square2 square2.c
/tmp/cczrIqF6.o: In function `main':
/tmp/cczrIqF6.o(.text+0x1d): undefined reference to `sqrt'
collect2: ld returned 1 exit status

 collect2: ld returned 1 exit status
Prova in questo modo
# gcc -o square2 square2.c -lm
CIAO
-- 
parsEc


The trouble with being poor is that it takes up all your time.

parsEc wrote:

Grazie così funziona.
Mi spieghi perchè si deve aggiungere quella opzione e cosa significa.

 Mi spieghi perchč si deve aggiungere quella opzione e cosa significa.
Con l'opzione -l<qualcosa> indichi la libreria che usi per linkare
staticamente il tuo porgramma.
In pratica con -lm indichi al linker di usare libm.
Per maggiori informazioni man gcc.
Ciao
--
        Giancarlo Rosso

Newsgroup: it.comp.lang.c
Titolo: Porta Parallela

Salve a Tutti,
come posso leggere dalla porta parallela EPP in modo
molto veloce? Sapete darmi un po di codice per
smanettare sulla porta?
Grazie a Tutti per l'aiuto
Marco


Sorry, ma sei OT qui. Molto.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003


non capisco il motivo dato che è un NG sulla programmazione C
Marco

 non capisco il motivo dato che è un NG sulla programmazione C
Lo standard per il linguaggio C non prevede alcuna modalita` per leggere 
dati dalla porta parallela (infatti il C ha l'obiettivo di essere 
portabile anche su macchine che non hanno porte parallele o simili).
Esistono sicuramente funzioni fornite dal tuo compilatore o da librerie 
esterne che consentono questa operazione. Ma dato che queste non fanno 
parte del linguaggio C standard, non costituiscono argomento di 
discussione in questo newsgroup.
Dovresti quindi rivolgerti ad un gruppo dedicato allo sviluppo sotto il 
tuo sistema operativo (ad esempio, it.comp.programmare.win32, 
it.comp.os.linux.development, etc...).
Newsgroup: it.comp.lang.c
Titolo: prova con fseek() ed ftell()

Ciao a tutti. Sto facendo un programmino per provare fseek ed ftell. Il
programma dovrebbe leggere da un file di input e scrivere il suo contenuto
al contrario in un file di output, dati come argomenti sulla linea di
comando. Ecco il codice:
--------------------
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
        FILE *in, *out;
        char c;
        if (argc != 3) {
                printf("Usage: %s infile outfile\n", argv[0]);
                exit(1);
        }
        in = fopen(argv[1], "r");
	out = fopen(argv[2], "w");
        fseek(in, 0, SEEK_END);
        while (ftell(in) >= 0) {
                c = getc(in);
		putc(c, out);
                fseek(in, -2, SEEK_CUR);
        }
        fclose(in);
        fclose(out);
        return 0;
}
---------------------------
Il problema è che non mi copia mai l'ultimo carattere. Ho provato anche a
mettere dopo il while un if (ftell(in) == 0) {c = getc(in); putc(c, out);}
ma senza risultato.
Dov'è il problema?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 il Monday 05 April
2004 11:48:
Devi controllare che in e out non siano nulli (siano cioé stati aperti)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
        FILE *inf;
        FILE *of;
        if(argc<3) return 1;
        if(!(inf=fopen(*argv, "r")) || !(of=fopen(argv[1], "w")))return 1;
        fseek(inf, 1, SEEK_END);
        do{
                putc(getc(inf), of);
                fseek(inf, -2, SEEK_CUR);
                printf("%d ", ftell(inf));
        }while(ftell(inf)>0);
        fclose(inf); fclose(of);
        return 0;
}
-- 
Per l'e-mail rimuovere le maiuscole e gli underscore

         }while(ftell(inf)>0);
questo ciclo non legge il primo carattere del file di input.
non mi e' venuto in mente un modo elegante per fargli leggere anche il
primo, e quindi non posto una soluzione.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 primo, e quindi non posto una soluzione.
al di là dell'eleganza, non mi serve una soluzione, solo un suggerimento per
capire dov'è che sbaglio. Quel cacchio di carattere continua a non
stamparmelo.


stamparmelo.
   Considera che lo standard precisa che, per file di testo,
l'argomento 'offset' di 'fseek' deve essere 0 (zero) oppure un valore
restituito da una precedente chiamata a 'ftell' (quest'ultimo caso
_*solo*_ se l'argomento 'whence' e pari a 'SEEK_SET').
   Detto questo, non ho capito quale sia il carattere che non ti
stampa, vista la particolare natura del problema in questione. Il
primo o l'ultimo del file sorgente?
-- 
S.L.

 primo o l'ultimo del file sorgente?
il carattere che non stampa è il primo del file di input, che dovrebbe
stampare alla fine del file di output

Newsgroup: it.comp.lang.c
Titolo: estrazione da una stringa

Ciao a tutti
ho questo problema
Ho una stringa dalla quale devo estrarre una determinata parola.
Es Ho questa stringa
"Abcdefg -prova- 12234"
Devo estrarre e memorizzare in un'altra stringa tutto quello che è presente
tra i segni -
Come faccio??
Grazie e ciao

 i segni - Come faccio??
<code status="not tested">
	/*
	 * Copies into dst every character of src in between
	 * two occurences of sep.
	 * Obviously, the size of dst has to be great enough.
	 */
	int strfind(char *src,char *dst,char sep)
	{
		int i=0;
		int j=0;
		int flag=0;
		char ch;
		while(ch=*(src+i)) {
			if(flag)
				if(ch!=sep) {
					*(dst+j)=ch;
					j++;
				}
				else	flag=0;
			flag=ch==sep;
			i++;	
		}
		j++;
		*(dst+j)='\0';
		return j;
	}
</code>
	Alla prossima,
		Marco


Scusami ma il tuo codice non funziona. Che ne pensi di questa mia
soluzione?
#include <stdio.h>
void strfind( const char *src, char *dst, char sep )
{
    while ( *src && *src != sep ) src++;
    src++;
    while ( *src && *src != sep ) *dst++ = *src++;
    *dst = '\0';
}
int main()
{
    char s[ 100 ];
    strfind( "Abcdefg -prova- 12234", s, '-' );
    printf( "%s\n", s );
    strfind( "-prova-", s, '-' );
    printf( "%s\n", s );
    return 0;
}
EMG

tra i segni -
Codice non testato :
void extract( const char *src, char *dst, char sep )
{
     int i = 0, j = 0 ;
     while ( src[i] )
     {
         if ( src[i] == sep ) break ;
 
         i++ ;
     }
     if ( src[i] ) 
     { 
        for ( j = i+1 ; src[j] ; j++ )
        {
            if ( src[j] == sep ) break ; 
        }
     }
 
     if ( j > i ) 
     { 
        strncpy( dst, &src[i+1], j-i-1 ) ;
     }     
}
--
Walkie...@Libero.It (ICQ# 8143647)

 }
e la stringa 'src' contiene solo il primo 'sep'?
ciao
donCiccio

      }
cosi' manchera' il terminatore '\0' in dst.
ciao
donCiccio

cosi' manchera' il terminatore '\0' in dst.
Dipende come e' passato dst.
Generalmente io alloco queste stringhe di destinazione con calloc per
lo spazio necessario e quindi i terminatori si hanno di default.
--
Walkie...@Libero.It (ICQ# 8143647)

 "Abcdefg -prova- 12234"
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
int main()
{
    char* endP   = NULL;
    char* startP = NULL;
    char* subStringP = NULL;
    startP = strchr("Abcdefg -prova- 12234", '-');
    if(NULL != startP)
    {
       endP = strchr(startP +1, '-');
       if(NULL != endP)
       {
          subStringP = calloc((endP-startP), sizeof(char));
          if(NULL != subStringP) 
             strncpy(subStringP, startP+1, endP -startP -1);
       }
    }
    printf("%s\n", subStringP);
    return 0;
}
C:\>iao Angelo
Newsgroup: it.comp.lang.c
Titolo: XML e c sotto Windows2000

Ecco il mio problema:
devo realizzare un servizio che riceve in ingresso un documento XML e lo
deve tradurre in una struttura C.
L'ambiente di sviluppo e Windows2000 Server.
Siccome sono novizio di XML non conosco le librerie a disposizione per il
parsing XML.
Da quel poco che sono riuscito a leggere avrei idea di utilizzare la
seguente architettura:
1) Traduzione da XML Doc > C struct
                      ---------                          ---------
                      | engine |                           | parser |
XML Doc >> | XSLT |  >> XML Doc   | XML  | >> C struct
                      ---------                          ---------
2) Traduzione da C struct a XML Doc
                  ---------                          ---------
                  | builder |                          | parser |
C struct >> | XML  |  >> XML Doc   | XML  | >> C struct
                  ---------                          ---------
A questo punto devo reperire informazioni su librerie di parsing XML e
engine XSLT.
Nessuno di voi ha dovuto implementare qualcosa del genere?
Sapreste consigliarmi qualche libreria?
Avete idee migliori?
Grazie a tutti


Per il parsing di file XML, in C, direi che è il caso di dare un'occhiata
alla libreria opensource expat (che ora risiede su sourceforge).
Questa è una soluzione multipiattaforma (tant'è che sto pensando di
portarmela su PalmOS...).
Visto l'ambiente su cui poi andrà a funzionare la tua applicazione (Win32
recente) puoi pensare di utilizzare una delle librerie sviluppate da mamma
Microsoft. In questo caso ti perdi la portabilità (sempre che interessasse
in primo luogo), ma dovresti trovare più documentazione, spero. Io
dell'expat ho trovato solo i sorgenti ed un articolo descrittivo :/
Ciao Pietro
--
The pawn is the most important piece on the chessboard...
up to the pawn.