Newsgroup: it.comp.lang.visual-basic
Titolo: sarà facile ma...

..sono in difficoltà.
Ho realizzato un file ASCII; l'incolonnamento dei campi è stato realizzato
anche con l'uso del Tab.
In lettura, via software, gli spazi realizzati con il Tab non ci sono e
quindi la spaziatura dei campi va a farsi benedire ossia non viene letta.
Come posso ovviare?
Grazie

 letta. Come posso ovviare?
elementi un po' scarsi...
io aggiungerei degli spazi, invece che dei tab, per incolonnare, magari
utilizzando la funzione format$
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo


il fatto è che il file ASCII è stato realizzato con un editor (Edit) non
posso ripassarlo tutto.
ciao, Tommaso

 Come posso ovviare?
Come fai a leggere il file?
Prova con Line Input #
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 letta. Come posso ovviare?
Ho capito ben poco del tuo problema.
Se devi leggere i singoli campi, della spaziatura non te ne frega niente,
basta fare uno split oppure un parsing di ciascuna riga.
Se invece devi visualizzare il testo incolonnato, usa un visualizzatore che
accetti le tabulazioni.
In linea di massima, comunque, ho l'impressione che tu non abbia ben chiaro
cosa vuoi fare.
Ciao
Alberto

 Prova con Line Input #
  E' proprio con Line Input che leggo il file
Faccio un esempio di record:
511           422            descrizione                  data
importo
campi:
primo di 8 caratteri
secondo di 8 caratteri
terzo di 25 caratteri
quarto di 10 caratteri
quinto di 8 caratteri
in lettura
il record perde spazi e quindi le prime 8 posizioni mi danno una strunga
diversa da 511----- ossia 511--4

 strunga diversa da 511----- ossia 511--4
Non diciamo castronerie. Il Tab è un carattere di peso decimale 9. Un
programma che ne preveda la "rappresentazione" lo può "riprodurre" come se
ci fosse un birillo ogni "n" spazi (4, 8, etc.)
Facci vedere il codice di scrittura (se l'hai) e di lettura e raccontaci
anche perchè vuoi che il Tab sia riprodotto in modo identico all'originale
(che, son domande, prevede dei tabulatori ogni ... spazi, a partire da ...
spazi, per finire a ... spazi?)

 diversa da 511----- ossia 511--4
Traducendo quello che dice Lupo (tranne la prima frase su cui concordo 
pienamente :) )
Se c'è un tab anzichè 5 spazi è ovvio che ti venga letto "511t" e non 
"511     " (dove t sta per vbTab).
Che poi di solito gli editor di testo interpritino il tab come 8 spazi è 
un'altro discorso, anche perchè se tu avessi
123456789 tab 123
e
1234 tab 123
il risultato *visivo* sarebbe qualcosa come
123456789      123
1234     123
Ciao

 ha scritto nel messaggio
news:buj7c8$2t1$1...@newsread.albacom.net...

Dopo aver letto la riga con Line Input, fai uno split della stessa con
delimitatore = Chr$(9):
Dim strRow As String
Dim vntField() As Variant
Line Input #NumeroFile, strRow
vntField = Split(strRow, Chr$(9))
Debug.Print vntField(0)    'Ritorna 511
Debug.Print vntField(1)    'Ritorna 422
Debug.Print vntField(2)    'Ritorna descrizione
Debug.Print vntField(3)    'Ritorna data
Ciao!
Esteban

Scusatemi, forse sono satoto poco chiaro.
Io leggo i records con
Con l'editor
Rec=
511     123     descrizione    ecc
Open
do wihe not eof(1)
line input #1,x$
s=x$
gosub dividi
loop
close
dividi:
    s1=left$(s,8)
(non per tutti i records, ma solo per quelli per i quali ho utilizzato il
tab,
si ha:
511 12 anzicchè  511
perchè, evidentemente, in fase di editazione ad un certo punto ho inserito
il tab
questa è mia supposizione
il difetto potrebbe essere causato da qualcosa di diverso?))
    s2=mid$9,8)
    s3=mid(s,17,32)
return
non sono un principiante e quindi vi prego di non sfottere
ma è la prima volta che mi capita qualcosa del genere.
Cerco una spiegazione, grazie
Tommaso

 Cerco una spiegazione, grazie
Ci sono, leggile e, per meglio capire, fai questo:
debug.print "---"
For p=1 to len(s)
    debug.print p & "=" & asc(mid(s,p,1))
next p

 Sì, ci posso credere.


     s1=left$(s,8)
Gosub? Non stai usando Visual Basic, vero?
Esteban

 Gosub? Non stai usando Visual Basic, vero?
Beh?, se il Gosub non ci fosse bisognerebbe inventarlo, anche con VB...