Newsgroup: it.comp.appl.access
Titolo: variabili

quando in un modulo si definisce una variabile, ad es. dim variabile as
string, è possibile specificare la lunghezza della variabile? Sto,
attraverso un modulo, da una tabella generando un file di testo, ed avrei
bisogno che ogni campo abbia una determinata lunghezza. Spero tanto possiate
aiutarmi.
Ciao a tutti

string, è possibile specificare la lunghezza della variabile?
Dim Variabile as String * 50
e' una stringa di 50 caratteri
Ciao. ElioP.

 >string, č possibile specificare la lunghezza della variabile?


FUUUUNZZZZZIIOOOOOONAAAAAAAAAA :-)
Ma per i dati nujmerici? se scrico dim numer as long * 9 mi dŕ errore
Grazie mille.
Per gli allineamenti, poi, io in output vorrei un allineamento per alcuni
campi a destra e per altri a sinistra
Grazie mille ancora




>bisogno che ogni campo abbia una determinata lunghezza. Spero tanto possiate
come fare te l'hanno gia' detto.  quello che vorrei sapere e' come mai
ne hai bisogno.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

 wrote in message
39096ae6...@news.interbusiness.it...


>Ma per i dati nujmerici? se scrico dim numer as long * 9 mi dà errore
le variabili numeriche hanno una dimensione intrinseca, dovuta al
numero di byte che servono per codificare un certo numero.  una
variabile long usera' comunque 4 byte per codificare un numero, sia
che esso sia zero sia che sia 2.000.000.000.
non confondere l'aspetto a schermo di un numero con la sua
rappresentazione in byte.
quanto agli allineamenti, quelli sono proprieta' dei controlli che usi
per visualizzare i valori.




 Ma per i dati nujmerici? se scrico dim numer as long * 9 mi dà errore
I dati numerici sono rappresentati dallo stesso numero di byte, scelto il
formato.
Ad esempio, il numero 1 ed il numero 32767 occupano la stessa quantità di
memoria.
Per la precisione:
Integer = 2 byte, può rappresentare l'intervallo -32768 - 32767
Long = 4 byte
Single = 4 byte, ma con rappresentazione (mantissa - esponente)
ecc...
Va da sè che in base al range previsto va utilizzato il tipo più opportuno.
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)
 
www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************

consente di esportare il file nel formato desiderato. 
Non so se ti può aiutare:
per forzare un numero fisso di cifre numeriche
puoi usare Format.
Per esempio:
intx = 123
msgbox Format(intx,"000000")
da' come risultato la stringa: 000123
Ciao. ElioP.

soddisfatto la tua curiosità. :-)P
si', infatti quello che mi domandavo era se non ti convenisse usare
funzioni tipo left o qualche altra che aggiungesse spazi a necessita'.


 wrote in message
390cd13c...@news.interbusiness.it...




Risolto con la left
VIVAAA


>mi faresti un esempio?
metti di avere un record tipo questo: Nominativo (stringa),
TotaleFatture (double).
metti di dover esportare in un file di testo e che chi deve usare il
file si aspetti che Nominativo sia giustificato a sx, e che sia lungo
100 caratteri, mentre TotaleFatture deve essere giustificato a dx ed
essere lungo 15 caratteri.
devi quindi generare una stringa lunga 115 caratteri e poi con
funzioni di i/o su file accodarla, appunto, ad un file.
la funzione string(n,c) restituisce una stringa composta da n volte il
carattere c.  (se c e' piu' lungo di un carattere si considera il
primo).
quindi string(100, " ") o string(100, chr(32)) restituisce uno
stringone di 100 caratteri spazio.
ammettiamo che tu abbia settato un recordset sulla tabella da
esportare. 
 
' le prime due variabili sono inutili, le metto solo per chiarezza.
dim sNom as string
dim sTot as string
dim appo as string
dim rst as recordset
set rst=ecc.ecc.
do until rst.eof
[...]
adesso "giustifichiamo" il campo Nominativo
sNom=rst!Nominativo & string(100, " ")
sNom=left(sNom, 100)
la riga di codice li sopra fa questo: prima aggiunge 100 caratteri
spazio al Nominativo, poi prende i primo cento caratteri del risultato
a partire da sinistra.
anche i due passaggi sono ridondanti.  si sarebbe potuto scrivere
semplicemente:
sNom=left(rst!Nominativo & string(100, " "), 100)
adesso giustifichiamo il campo TotaleFatture (supponiamo per
semplicita' che i valori siano senza decimali e tutti positivi).
sTot=string(15, "0") & cstr(rst!TotaleFatture)
sTot=right(sTot, 15)
ossia prendiamo 15 caratteri zero e gli accodiamo il valore di
TotaleFatture trasformato in stringa per mezzo della funzione cstr.
poi prendiamo i primi 15 caratteri a partire da destra.
il tutto si puo' scrivere piu' sinteticamente cosi':
sTot=right(string(15,"0") & cstr(rst!TotaleFatture), 15)
