PDA

Visualizza la versione completa : Lunghezza stringhe VB


ftponline
09-05-2002, 14:24
Se dichiaro una stringa in quetso modo:

dim stringa as String

quanti caratteri potrà contenere al massimo???

vonkranz
09-05-2002, 14:32
Le stringhe di lunghezza variabile possono contenere fino a circa 2 miliardi (2^31) di caratteri. :eek:

Le stringhe di lunghezza fissa possono contenere da 1 a circa 64 KB (2^16) di caratteri. :dottò:

Ti potranno bastare? :D

ftponline
09-05-2002, 14:50
direi di si....ci posso scrivere un libro! :gren:

Le uniche limitazioni le posso avere se passo per ODBC...accetta al massimo 65000 caratteri! :(

Grazie 1000

Vlad Tepes
09-05-2002, 15:24
ciò che scrive vonkranz è falso. le stringhe a lunghezza variabile raggiungono al massimo 64KB, quelle a lunghezza fissa servono a evitare sprechi di memoria. kranz, ragiona: 2 GB e passa di variabile?... :quote: :quote: :quote:

http://msdn.microsoft.com

String data type

A fundamental data type that holds character information. A String variable can contain approximately 65,535 bytes (64K), is either fixed-length or variable-length, and contains one character per byte. Fixed-length strings are declared to be a specific length. Variable-length strings can be any length up to 64K, less a small amount of storage overhead.

The type-declaration character for the String data type is $.
String data type
A fundamental data type that holds character information. A String variable can contain approximately 65,535 bytes (64K), is either fixed-length or variable-length, and contains one character per byte. Fixed-length strings are declared to be a specific length. Variable-length strings can be any length up to 64K, less a small amount of storage overhead.

The type-declaration character for the String data type is $.

vonkranz
10-05-2002, 09:00
Ma io mi chiedo:
Secondo te ho sparato quelle cifre cosi' a caso?! :confused:

...probabilmente e' la Micro$oft che dichiara il falso (o almeno il suo Help in linea...) e che non ragiona:

Ecco cosa dice l'help in linea di VB riguardo i tipi di dati string. (questa volta lo riporto per intero):


Tipo di dati String


Esistono due tipi di stringa:

Stringhe di lunghezza variabile, che possono contenere fino a circa 2 miliardi (2^31) di caratteri.


Stringhe di lunghezza fissa, che possono contenere da 1 a circa 64 KB (2^16) di caratteri.
Nota Una stringa di lunghezza fissa di tipoPublic non può essere utilizzata in unmodulo di classe.

I codici per i caratteriString sono compresi fra 0 e 255. I primi 128 caratteri (0-127) del set di caratteri corrispondono alle lettere e ai simboli di una tastiera standard americana. Questi primi 128 caratteri sono gli stessi definiti dal set di caratteriASCII. I successivi 128 caratteri (128-255) sono caratteri speciali, quali lettere di alfabeti internazionali, accenti, simboli di valuta e frazioni.Ilcarattere di dichiarazione del tipo per String è il simbolo del dollaro ($).


E se proprio non ci credi, dichiara una qualsiasi variabile As String, seleziona String premi F1 e clicca su Tipo di dati String.

Nel caso fammi sapere....

Cmq puo' anche essere che hai guardato in una parte di Msdn un po' vecchia.
Saluti.

Vlad Tepes
10-05-2002, 12:15
msdn vecchia?... non so con che frequenza aggionino il sito quelli di micro$oft, ma credo lo facciano piuttosto spesso... negli hlp di VB ci sono abbastanza errori... ma d'altra parte non ci vuole un genio per capire che 2 GB di variabile poteva trattarsi di un errore... visita il sito di msdn, e buona fortuna... ne avrai bisogno...

vonkranz
10-05-2002, 14:09
1) Non ci vorra' un genio pero' mi sa' che hai preso un'abbaglio:

Giusto per provare fai girare questo:


Dim a As String
Do
a = a + "JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJ"
lbl.Caption = CStr(Len(a))
lbl.Refresh
Me.Refresh
Loop


e prova a vedere quando si ferma.
E adesso non venirmi a dire che ogni singolo carattere della stringa non occupa 1 byte.

interessante il concetto:


negli hlp di VB ci sono abbastanza errori, mentre nell'MSDN no

..ovviamente il testo in neretto era sottointeso.

2)Non ci vorra' sicuramente un genio nel leggere:


Cmq puo' anche essere che hai guardato in una parte di Msdn un po' vecchia. (ci sono sezioni di MSDN che hanno anche 5 anni)


3)


e buona fortuna... ne avrai bisogno...


Mi chi pensi di essere?
Non ci siamo ne' mai visti, ne' mai conosciuti e te ne esci con una cosa del genere?
Prima di parlare o scrivere medita su quello che stai facendo.

Vlad Tepes
10-05-2002, 14:24
1) spiacente ma non posso fare girare quel codice, in quanto non hanno ancora inventato un compilatore vb per linux. in ogni caso so bene di cosa si parla quando si parla di spazi di memoria. la bibbia completa di nuovo e antico testamento occupa circa 4 mb di memoria... non 8000 mb.
2) non devo venirti a dire che un SINGOLO carattere occupa un byte?........ il codice ASCII è composto da 256 caratteri, fatti due conti... che cos'é un bit?... quanti bit sono necessari per avere 256 differenti combinazioni?... e da quanti bit è composto un byte?... mai sentito parlare di codice binario?...
3) se è per questo la prima msdn è nata più 10 anni fa se non errro, ma temo che il sito venga aggiornato abbastanza frequentemente...
4) chi penso di essere?... assolutamente nessuno, ma in questo caso qualcuno che ne sa qualcosina in più di te... so che non ci siamo mai visti né conosciuti, ma mi basta leggere ciò che scrivi... a meno che non fosse tutto una recita...
5) bellissima la citazione nella tua firma, adesso mi sono chiare molte più cose ;)

vonkranz
10-05-2002, 15:06
1) spiacente ma non posso fare girare quel codice, in quanto non hanno ancora inventato un compilatore vb per linux. in ogni caso so bene di cosa si parla quando si parla di spazi di memoria. la bibbia completa di nuovo e antico testamento occupa circa 4 mb di memoria... non 8000 mb.


.. ci avrei scommesso....



2) non devo venirti a dire che un SINGOLO carattere occupa un byte?........ il codice ASCII è composto da 256 caratteri, fatti due conti... che cos'é un bit?... quanti bit sono necessari per avere 256 differenti combinazioni?... e da quanti bit è composto un byte?... mai sentito parlare di codice binario?...


....appunto.... pregasi rileggere (riporto il testo per comodita'), due non di seguito a volte passano inosservati soprattutto quando uno ha gia' le idee troppo chiare....



E adesso non venirmi a dire che ogni singolo carattere della stringa non occupa 1 byte.




4) chi penso di essere?... assolutamente nessuno, ma in questo caso qualcuno che ne sa qualcosina in più di te...:confused: (sicuro???) so che non ci siamo mai visti né conosciuti, ma mi basta leggere ciò che scrivi...:confused: (Profiler...) a meno che non fosse tutto una recita... assolutamente no


....WOW....... :eek:



5) bellissima la citazione nella tua firma, adesso mi sono chiare molte più cose

...e chiudiamo in bellezza!!! :D

Dimenticavo un'altra piccola, insignificante annotazione: se non hai un compilatore VB, come fai ad affermare che:


negli hlp di VB ci sono abbastanza errori...

:confused:.... lo so, lo so.... l'hai visto sul PC di un amico....

Sull'epilogo di questo thread, ormai diventato un po' antipatico e andato abbastanza fuori tema, lascerei decidere al ns. moderatori

Saluti e baci....

Wild78
10-05-2002, 15:16
Smorziamo gli animi perfavore...

Credo che ci voglia un pò più di garbo nel rispondere a un'altra persona, anche se si pensa che questa abbia commesso un errore...


THREAD CHIUSO!

Loading