Newsgroup: it.comp.lang.visual-basic
Titolo: Stringa fissa ma dinamica

Ho bisogno di dichiarare una stringa di lunghezza fissa, ma che possa
cambiare ogni volta che il codice viene eseguito in base al risultato di
un'altra variabile; ho fatto varie ma senza risultato.
Da ultimo pensavo di aver risolto con una bella select,  invece vb si
accorge dell'imbroglio e mi dice che ho dichiarato la variabile 2 volte :(
C'è un'altra via per ottenere lo stesso risultato?
 Grazie
ciao
x = 8
Select Case x
Case Is < 10
    Dim Stringa As String * 10
Case Is < 20
    Dim Stringa As String * 20
End Select
--
Greg

 --
Non ho capito dove vuoi arrivare, perň la butto lě
dim Stringa as string
dim StringaUtile as string
StringaUtile = Left(Stringa,x)
cioč scrivi sempre in stringa e poi leggi solo i caratteri che ti servono
Ciao 

 StringaUtile = Left(Stringa,x)
Purtroppo non č a lunghezza fissa :(
Devo passarla ad una api e la vuole per forza nel formato: dim S as string *
30
--
Greg

possa essere lunga un numero x a seconda della bisogna.
Hai provato a dare un occhio alla funzione Space$?
--
Ciao!
Luca Menegotto


Se dichiari una serie di variabili delle dimensioni utili
Dim S10 as String * 10
Dim S20 as String * 20
Dim S30 as String * 30
e cosě via
e poi includi la chiamata alle API nel costrutto Select utilizzando la 
variabile giusta?
Select Case x
Case Is < 10
    call API con S10
Case Is < 20
    call API con S20
End Select


No perchè non la ritenevo idonea allo scopo.
L'ho provata, con molto scetticismo devo dire, dietro tuo suggerimento e
sono rimasto sorpreso. Risolve il mio problema benissimo. Grazie :)
ciao
--
Greg

 End Select
Si lunga, ma ingegnosa devo dire.
Grazie lo stesso ma ho risolto benissimo col suggerimento di Luca
dim stringa as string
stringa = Space$(numero_caratteri_che_voglio)
che fa lo stesso lavoro di
dim stringa as string * 30
dove perň il 30 rimane fisso
--
Greg

 dove però il 30 rimane fisso
No, non fa lo stesso lavoro.
Infatti se scrivo:
Dim x As String
x = Space$(4)
x = "Gianluca"
MsgBox x
Otterrò appunto "Gianluca"
al contrario
Dim x As String * 4
x = Space$(4)
x = "Gianluca"
MsgBox x
Restituirà "Gian"
Ciao!
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

 Otterrò appunto "Gianluca"
Hai ragione. Infatti come ho scritto ieri non volevo neanche provarla, ma
rimane il fatto che la api la accetta come se fosse: x = As String * 4
Anche se però prima gliela dimensiono opportunamente.
Sub ScrivIni(Chiave As String, Testo As String)
    Dim Temp As String,   ' + tutte le altre......
    Temp = Space$(Len(Testo))
    Temp = Testo
    x = WritePrivateProfileString(lpAppName, lpKeyName, Temp, FileName)
End Sub
Questa era la vecchia, con stringa sovradimensionata, che mi dava problemi
di righe vuote quando scrivevo stringhe corte.
Sub ScrivIni(Chiave As String, Testo As String)
    Dim Temp As String * 250,   ' + tutte le altre......
    Temp = Testo
    x = WritePrivateProfileString(lpAppName, lpKeyName, Temp, FileName)
End Sub
ciao, grazie per le precisazioni
--
Greg

 As String * 4 
OK, quindi non ti serviva nient'altro che un buffer...


 End Sub
hth,
Lokar 

>    x = WritePrivateProfileString(lpAppName, lpKeyName, Temp, FileName)
Cosi':
Sub ScrivIni(Chiave As String, Testo As String)
   'Dim tutte le altre......
   x = WritePrivateProfileString(lpAppName, lpKeyName, Testo, FileName)
End Sub
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs
­/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs
­/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org
 

> FileName) End Sub
Questa invece funzia, anche se non capisco perchè :(
In ogni caso, grazie
--
Greg

 Questa invece funzia, anche se non capisco perchè :(
Perche' se assegni un testo ad una stringa a lunghezza variabile, se il testo e' piu' breve della lunghezza della stringa, il resto 
della stringa viene riempita con degli spazi (chr(32)) e Trim$ te li leva. Ora che ci penso, una RTrim$(Temp) e' sufficiente =)


 Lokar
grazie ancora :)
--
Greg

 End Sub
ma, scusa ma devi scrivere in un file ini?
Perché non ha fatto una ricerca, prima di postare? Dai un'occhiata qui, e
vedi se ti serve di aiuto:
http://arianna.libero.it/usenet/cgi-bin/ViewArticle.epl?MESSAGE_ID=%3C151Z41Z177Z110Y1114876570X9922%40usenet%2Elibero%2Eit%3E&TABLES=RECENT_MSG&t=1117060627&QTERMS=writeini
Spero ti sia utile. Ciao.
PS: se è possibile, non si deve ogni volta reinventare la ruota.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 PS: se č possibile, non si deve ogni volta reinventare la ruota.
Cercavo solo di capire i mille usi diversi che si fanno della ruota; sono
daccordo con te.
--
Greg