Newsgroup: it.comp.lang.c
Titolo: Stringhe, che disperazione!

Salve.
Dovrei leggere un file di testo, scomporre le singole righe in vari campi e
trasferirli in una tabella di un database.
Supponiamo che abbia nel vettore nome[21] il valore "Mauro" e nel vettore
cognome [21] il valore "Sanna". Avro' il questi vettori il carattere di fine
stringa e cioe' in nome[20] ='\0' e in cognome [20] = '\0'.
Ora se faccio una printf dei due vattori vedo correttamente il loro
contenuto.
Se non metto il carattere di fine stringa invece oltre al loro contenuto ho
anche un serie di caratteri strani. E va bene metto il carattere di fine
stringa.
La domanda e': nel momento in cui devo traferire il contenuto di questi
vettori nel database verra' inserito anche il carattere di fine stringa?
Avro', cioe', nel campo nome della tabella il valore "Mauro\0"? Per evitare
cio' dovrei eliminare '\0' ma cosi' facendo non corro il rischio che mi
vengano inseriti nel campo anche quei caratteri strani di cui parlavo prima?
Quale e' la soluzione?
Grazie.
 _  _  __
|  \/  |(_/ _     _  _  _
|      |/_)(_)_|  )|  )(_)_
     Mauro Sanna
(
mrs...@tin.it
)
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org

Quale e' la soluzione?
#include  <memory.h>
#include  <string.h>
char campoDB[ 128 ]; // dimensione fissa del campo di DB ( da verificare
!! )
memset( campoDB, ' ', 128 );                                          //
riempie di blank
memcpy( campoDB, miastringa, strlen( miastringa ) );// copia solo fino al
terminatore escluso
potresti perň avere delle funzioni di conversione gia pronte !!
Ciao
Mat

vettori nel database verra' inserito anche il carattere di fine stringa?
Dipende da cosi usi per trasferire i dati. Se usi le funzioni per la 
gsetione delle stringhe (strcpy(),strcat(),etc) non devi fare niente di 
particolare. Altrimenti puoi sempre calcolare con strlen(string) quanti 
caratteri ci sono nella stringa (quindi escluso il terminatore finale) e 
trasferire solo quelli.
-- 
Warning!
Don't send any mail for me at my from: or replayto: addresses ;
I just kill the mail over there without reading!


Sinister

 trasferire solo quelli.
Beh, io ho letto un file ascii che ho suddiviso in vari campi. Ho qundo p. es.
i vettori anno[], mese[], giornpo[], ecc.che contengono dei valori presi dal
suddetto file ascii.
A questo punto devo trasferire i contenuti dei suddetti vettori in un tabella
di un database MySQL (lavoro con Linux) utilizzando le sue api in C.


 vettori nel database verra' inserito anche il carattere di fine stringa?
Tutto dipende da come sono fatte le funzioni che usi; possono
richiedere o meno un carattere terminatore nella string, o possono
richiedere il numero dei caratteri da mettere in storage.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

di un database MySQL (lavoro con Linux) utilizzando le sue api in C.
Sorry, mai usato MySQL, ne' nessun altro DB sotto linux, quindi non so 
aiutarti.


 di un database MySQL (lavoro con Linux) utilizzando le sue api in C.
Scusa, ma perche' non usi un po' di SQL, visto che MySQL e' un db SQL
compliant?


Ehm, per esempio?


 Ehm, per esempio?
SQL e' un linguaggio di programmazione "standard" di fatto per i
database. Oggi molti db prevedono la possibilita' di essere programmati
in SQL --structured query language-- e MySQL e' uno di questi. Non
saprei dirti on-line dove puoi trovare istruzioni su SQL: io ho comprato
un libro di SAMS Publishing fatto molto bene. Se vuoi qualche dato in
piu', chiedi pure --non via mail perche' il server in questi giorni non
funziona--.

 database.
Si, conosco l'SQL ma non sapevo potessi utilizzarlo col C.Posso quindi inserire
nel mio programma in C codice puro SQL?
Ciao.
--
Posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate.ORG Server - 
http://www.mailgate.org

nel mio programma in C codice puro SQL?
Dipende tutto dal tuo ambiente di sviluppo.  Quello che
accenni pare proprio l'ambiente "Embedded SQL" che
tanti database offrono (essi girano praticamente un loro
preprocessore per trasformare il C con Embedded SQL
in C con chiamate a loro opportune funzioni), ma ci sono
anche tanti altri approcci, che, se pure usano direttamente
stringhe in sintassi SQL, le usano peró come argomenti
a funzioni o simile dell'ambiente di sviluppo-DB.
Alex

 nel mio programma in C codice puro SQL?
Oh, scusa... Non ci eravamo capiti. Io mi chiedevo come mai non scrivevi
programmi completamente SQL anziche' farli in C e farli poi colloquiare
con il tuo db.
Secondo me, volendo una soluzione mista, tanto vale che usi html+sql,
cosi' hai anche una soluzione portabile su varie piattaforme senza alcun
aggiustamento successivo.