Newsgroup: it.comp.lang.visual-basic
Titolo: Lettura di un file UNIX con il FileSystemObject

Ho un piccolo problema. Forse sbagliando, <grin> ho appena convertito tutto
il mio codice dalla forma
    Open <filename> for Input as #1
    Line Input #1, a$
    .
    .
    Close #1
alla forma
    set Fs = CreateObject("Scripting.FileSystemObject")
    set F = Fs.OpentextFile(<filename>, ForReading)
    a$ = F.ReadLine
    .
    .
    F.Close
Il bel risultato è che il secondo codice non riconosce il solo CR (ascii 13)
come carattere di fine riga.
Come dice il soggetto, il file di testo viene da un server UNIX, ed io non
voglio "convertirlo" in alcuna maniera con dei programmi automatici, dato
che questo file contiene anche delle parti che sono puro codice binario e
verrebbe fuori un casino (già provato!).
C'è qualche archibugio da fare per dire al FileSystemObject di riconoscere
il solo CR come fine riga, invece dello standard 13-10 del DOS?
Attenzione, non voglio scrivere del codice [saprei come fare! ;-) ], solo
fare capire a quel capoccione del FileSystemObject che l'ASCII 13 è il fine
riga, ovvero che il TextStream che ha aperto con quel nome deve essere
trattato come un file UNIX / MAC!
Grazie a tutti in anticipo.
   -  o  -
Corrado Mella
Web Master
Telefono: 0257577531
Fax: 0257577323
E-Mail: corrado.mella@!NOSPAM!
libero.it
remove NOSPAM to reply.

 ha scritto nel messaggio
news:8kuv9v$o6n$1...@fe1.cs.interbusiness.it...> Ho un piccolo problema. Forse


 wrote in message
news:8kv1eh$el6$1...@pinco.nettuno.it...
| ti rispondo con la poca conoscenza che ho di linux ( quindi neanche di
unix)
| e spero che ti possa
| in qualche modo aiutare.
|
| dalla documentazione linux risulta che il fine riga dei file di testo
| vengano terminati tramite un LF
| al posto del CR+LF di dos .
| Quindi al limite prova a testare la presenza del carattere di Line Feed
|
| Ciao
CR o LF, non importa... Volevo sapere una cosa differente!
Se sai usare il FileSystemObject...
;-)

 ;-)
Brrr... Stavo per risponderti ma questa tua replica mi ha
spaventato.
--
Ciao.
Maurizio


NO XCHè LA FUNZIONE è UNA API DOS CHE TI PERMETTE DI LEGGERE RIGA X RIGA DI
UN
FILE DI TESTO ASCII O UNICODE, VATTI A LEGGERE L'ARTICOLO Q189751 DELLA KB
DI MICROSOFT DI CUI
TI RIPORTO IL PEZZO CHE TI INTERESSA
MORE INFORMATION
Forward reading line-by-line - the FileSystemObject reads a text file in one
direction: from the beginning to the end of the text file. Further, the
FileSystemObject only reads line-by-line. If you need to go back to a
previous line, then you must return to the beginning of the file and read
forward to the required line.
scusami se non ho capito la tua richiesta iniziale


 in che senso ?
Per chiarezza riformulo il testo della mia risposta:
"Brrr... Caro Corrado Mella, stavo per risponderti ma questa
tua replica a The Matrix mi ha spaventato."
Perche' ho risposto cosi`? Perche' mi ha infastidito il modo
in cui Corrado Mella ti ha risposto. Anche se seguiti
dall'ammiccamento della faccina, i tre puntini sospensivi a
conclusione della frase "Se sai usare il FileSystemObject..."
a casa mia si leggono: "Se sai usare il FileSystemObject bene,
altrimenti taci". E mi sembra che anche tu abbia attribuito
alla risposta quel significato. Infatti ti sei messo a
urlare...;-)
E` indubbio, pero`, che Corrado Mella non abbia torto a
ritenersi insoddisfatto della tua risposta in quanto non
pertinente, e credo anche che le sue intenzioni non fossero
"aggressive". Manteniamo tutti la calma, ok?
A questo punto trovo giusto proporre la risposta che non ho
inviato precedentemente, essendo si` uno che usa il
FileSystemObject, ma alquanto incerto sulla mia sapienza al
riguardo e, soprattutto, non potendo verificare una situazione
analoga a quella del quesito.
Ecco la domanda che volevo porre a Corrado Mella: data la
sintassi:
    object.OpenTextFile(filename[, iomode[, create[,
format]]])
come si comporta questo metodo con i file in questione se
assegni all'argomento "format" il valore TristateUseDefault
(=-2)?
--
Ciao.
Maurizio

| > > > CR o LF, non importa... Volevo sapere una cosa
| differente!
| > > > Se sai usare il FileSystemObject...
| > > > ;-)
| > > Brrr... Stavo per risponderti ma questa tua replica mi ha
| spaventato.
| > in che senso ?
| Per chiarezza riformulo il testo della mia risposta:
[snip]
| a casa mia si leggono: "Se sai usare il FileSystemObject bene,
| altrimenti taci". E mi sembra che anche tu abbia attribuito
| alla risposta quel significato. Infatti ti sei messo a
| urlare...;-)
Probabilmente gli è scappato il CAPSLOCK... Mica sto a guardare queste cose!
Comunque, anche nella sua replica, mi cita un pezzo di KB che NON dice che
il file NON può essere UNIX.
Un file UNIX di testo è anche ASCII... o no?
La TriState che citi tu non l'ho ancora provata, suppongo invece che sia
necessario andare a sovrascrivere qualche costante di sistema tipo
fsoLineTerminator o similia.
Con la mia risposta volevo solo evitare a chi non conosceva 'a fondo' il
File SystemObject di scervellarsi, sperando in una risposta di un 'guru'...
tutto qui!
| E` indubbio, pero`, che Corrado Mella non abbia torto a
| ritenersi insoddisfatto della tua risposta in quanto non
| pertinente, e credo anche che le sue intenzioni non fossero
| "aggressive". Manteniamo tutti la calma, ok?
Esatto, ci mancherebbe altro... Non fate dietrologia, per favore, o non
cercate di leggere emozioni o intenzioni dietro la sintassi 'sintetica' che
si usa nelle News... Cerco solo di essere stringato!
| Ecco la domanda che volevo porre a Corrado Mella: data la
| sintassi:
|     object.OpenTextFile(filename[, iomode[, create[,
| format]]])
| come si comporta questo metodo con i file in questione se
| assegni all'argomento "format" il valore TristateUseDefault
| (=-2)?
Uhm... dato che è appunto la UseDefault, anche se non la specifichi è
proprio quella!
Posso provare con la TristateFalse... Grazie!

 Posso provare con la TristateFalse... Grazie!
Non e` esatto:
"format: Optional. One of three Tristate values used to
indicate the format of the opened file. If omitted, the file
is opened as ASCII."
Ovvero:
"TristateUseDefault -2 Opens the file using the system
default.
 TristateTrue       -1 Opens the file as Unicode.
 TristateFalse       0 Opens the file as ASCII."
--
Ciao.
Maurizio
--------
?SPQR(C)
 X

 wrote in message
news:8l25fp$fod$4...@nslave1.tin.it...
| > Corrado Mella:
| [...]
| > Uhm... dato che è appunto la UseDefault, anche se non la
| specifichi è proprio quella!
| > Posso provare con la TristateFalse... Grazie!
| Non e` esatto:
| "format: Optional. One of three Tristate values used to
| indicate the format of the opened file. If omitted, the file
| is opened as ASCII."
| Ovvero:
| "TristateUseDefault -2 Opens the file using the system
| default.
|  TristateTrue       -1 Opens the file as Unicode.
|  TristateFalse       0 Opens the file as ASCII."
OK, capisco. Ma ciò che non mi è chiaro a questo punto è... Qual'è il
SystemDefault?
Lo imposto io in qualche modo nel codice, o da qualche altra parte?
Leggendo bene la descrizione del parametro 'format' mi pare di capire che se
il parametro è omesso (come ho fatto io) il file viene aperto in ASCII.
Ergo, se non sono tutto scemo, è il default.
Mi sbaglio? Scusa l'ignoranza, ma sto un po' "esagerando", nel senso che
queste cose le sto facendo con Access 2k... non con VB!

 Mi sbaglio? Scusa l'ignoranza, ma sto un po' "esagerando",
nel senso che queste cose le sto facendo con Access 2k... non
con VB!
Nonzignore. Guarda la barra del titolo: c'e` scritto
"Microsoft Visual Basic", mica Access.


| Percio` ho creato questo file PROVA.DAT
|
|     41 41 41 0A
<snip>
| che sarebbe:
|
|     "AAA" + vbLf
<snip>
| E tutto e` andato liscio.
Con il vbLf... e con il vbCr???  -> QUI <- sta il problema... !
| Ricordi quel passo del tuo primo post in cui scrivevi "dato
| che questo file contiene anche delle parti che sono puro
| codice binario"? Sei sicuro dei test che hai eseguito?
Assolutamente, e con più di un file (oltre 20).
| > Mi sbaglio? Scusa l'ignoranza, ma sto un po' "esagerando",
| nel senso che queste cose le sto facendo con Access 2k... non
| con VB!
| Nonzignore. Guarda la barra del titolo: c'e` scritto
| "Microsoft Visual Basic", mica Access.
Si, certo, intendevo che si tratta del VB "annegato" in Access 2000. Mi vuoi
dire che O2K Pro ha dentro "aggratis" anche il VB6.0? Slurp...

 [...] Si, certo, intendevo che si tratta del VB "annegato"
in Access 2000. Mi vuoi dire che O2K Pro ha dentro "aggratis"
anche il VB6.0? Slurp...
No. Sia Visual Basic che Office hanno dentro a pagamento VBA.
;-)
--
Ciao.
Maurizio

 wrote:
|Tu come mai ti ritrovi con quel vbCr?
Sono dei files .EPS  ... 8-[
| Se nessuno spara fuori qualche novita` mi sa che e`
| meglio che torni all'antico,
[@@]**§@°####%"£%\|&£==^£$%$$&/%&#### !!!!!
| o leggi un carattere alla volta con
|     .Read(1)
| ma dovrebbe essere molto piu` lento...
RONF!!! Ed anche SNORT...
| Oppure leggi tutto il file in un colpo solo e lo affetti con
| Split o come si chiama.
Non funza. Ci sono delle parti di file che NON devo interpretare come ASCII.
| No. Sia Visual Basic che Office hanno dentro a pagamento VBA.
| ;-)
E-))))
Vabbè, al lavoro...