Oppure

Loading
15/09/06 22:43
principiantevb
mi appello a voi...ho delle text che vengono registrate in un file txt, ma voglio che la loro lunghezza di campo sia fissa, ovvero che poi nel txt ci sia un preciso "ordine" ovvero voglio che il foglio sia standardizzato con campi statici, come un database access..
con la funzione mid$ pensavo di riuscire subito a ottenere il risultato, ma ho riscontrato che, almeno nella maniera in cui lo utilizzo, non mi soddisfa.
esempio
text1 -> voglio che abbia 6 caratteri di lunghezza
text2 -> voglio che ne abbia 3

mid$(text1,1,6) & mid$(text2,1,3)

se però io inserisco nel text1 la parola casa che è lunga 4 caratteri i 2 caratteri spazio non vengono scritti nel txt e ciò mi fa "sballare" l'ordine per cui non ho più delle righe standardizzate..e non riesco a capire come mai la funzione mid$ agisce anche da Rtrim$...
come posso fare??

grazie per l'aiuto ;)
aaa
16/09/06 12:24
Rand
ma la lunghezza del testo, la devi impostare nel file txt o nell'oggetto "text1" ?
aaa
16/09/06 13:12
principiantevb
no il mid lo imposto sul text1 in modo che poi nel txt ci siano delle "colonne" ben stabilite.. il foglio deve avere una struttura regolare..
aaa
16/09/06 13:54
Reese
Puoi risolvere con più righe così:
Se inserisci una parola di più di sei caratteri, prendi solo i primi sei, altrimenti aggiungi degli spazi. No?
aaa
16/09/06 19:49
Anonymous
Postato originariamente da Reese:

Puoi risolvere con più righe così:
Se inserisci una parola di più di sei caratteri, prendi solo i primi sei, altrimenti aggiungi degli spazi. No?


si ma diceva che gli spazi venivano tolti come se usasse la funzione trim...

Però potresti invece far aggiungere anzichè spazi, il carattere nullo, per capirci: quello che nella tabella ASCII corrisponde al numero decimale 0, in questo modo, anche se non si vede, la macchina sa che c'è e dato che non è uno spazio non lo elimina
ok?
aaa
20/09/06 13:08
principiantevb
purtroppo il consiglio che mi avete suggerito non va bene perchè le text in quel modo non avrebbero una lunghezza standard... ma a voi la funzione mid$ aggiunge anche gli spazi rimasti alle parole più corte del tot da voi impostato?? altrimenti mi sa che è un problema mio... possibile che non esista un comando come mid$ che comprenda anche gli spazi? :-?
aaa
21/09/06 12:16
metti il testo in una variabile, fai il controllo sulla lunghezza della variabile se minore allora variabile & " " se maggiore ne prendi solo tot con mid
22/09/06 13:25
principiantevb
ho risolto nel modo seguente:

dim text1a as string

text1a = Space$(6 - Len(text1)) + Str$(text1)

:k:
aaa