Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Forum :: Programmazione.it :: Software :: VB6 - scrivere e leggere da file sequenziale un carattere o una parola alla volta
Scritto da Simone Dsfdffdfds a.k.a. santcostagl il 08-02-2011 ore 11:41
Intel Parallel Studio XE 2015
Salve,
dovendo operare con un file sequenziale, avrei bisogno di leggere un carattere alla volta e anche una parola alla volta (ovviamente non contemporaneamente - vale a dire che sarebbero due procedure differenti).
Come si fa ?

Se ad esempio scrivo un'istruzione del tipo

Input #1, var

associo alla variabile var il contenuto di un'intera riga del file.
Che modifiche devo fare per leggere o un solo carattere o una sola parola?

Similmente, mi servirebbe sapere come poter scrivere su file un carattere o una parola alla volta.

Vi ringrazio.
Precedente: Sviluppatore PHP Esperto
Successiva: CERCO ESPERTO OSCOMMERCE
Intervento di Massimo Mazza a.k.a. banjoman del 08-02-2011 ore 22:23, Mandatoriccio (CS)
Barone
Barone

(292 interventi)
Iscritto il 13-03-2005
Non associ alla variabile il contenuto di un'intera riga, ma solo il primo valore che trova nella riga stessa (che poi tra l'altro il concetto di riga e' improprio, trattandosi di un file sequenziale)

Il BASIC con l'istruzione INPUT legge i dati che via via trova nel file, a patto che siano separati da una virgola.

Se per ipotesi la riga e' cosi' scritta:

"Esempio di riga da leggere,con il BASIC"

La prima istruzione di INPUT porra' in var la stringa "Esempio di riga da leggere"
Il successivo INPUT, var conterra' "con il BASIC"

Indipendentemente dal risultato finale che desideri, ritengo piu' conveniente leggere il file un carattere alla volta sempre e comunque.
Prova cosi':


dim var as byte
open "file" for binary access read as #1
: legge il primo carattere nel file
get #1,,var
: continui con la get finche' ti basta o finche raggiungi l'EOF
close #1


Non sono sicuro che Get controlli l'EOF (non sono esperto di VB). Per sicurezza ottieni la dimensione effettiva del file prima di aprirlo (non si sa mai)....

Per scrivere un carattere alla volta, c'e' l'omologa funzione PUT. Leggi l'help del VB per avere maggiori dettagli.

Ciau,
Max
Intervento di Simone Dsfdffdfds a.k.a. santcostagl del 09-02-2011 ore 14:47, Livorno (LI)
Plebeo
Plebeo
(1 intervento)
Iscritto il 08-02-2011
banjoman ha scritto:
Non associ alla variabile il contenuto di un'intera riga, ma solo il primo valore che trova nella riga stessa (che poi tra l'altro il concetto di riga e' improprio, trattandosi di un file sequenziale)

Il BASIC con l'istruzione INPUT legge i dati che via via trova nel file, a patto che siano separati da una virgola.

Se per ipotesi la riga e' cosi' scritta:

"Esempio di riga da leggere,con il BASIC"

La prima istruzione di INPUT porra' in var la stringa "Esempio di riga da leggere"
Il successivo INPUT, var conterra' "con il BASIC"

Indipendentemente dal risultato finale che desideri, ritengo piu' conveniente leggere il file un carattere alla volta sempre e comunque.
Prova cosi':


dim var as byte
open "file" for binary access read as #1
: legge il primo carattere nel file
get #1,,var
: continui con la get finche' ti basta o finche raggiungi l'EOF
close #1


Non sono sicuro che Get controlli l'EOF (non sono esperto di VB). Per sicurezza ottieni la dimensione effettiva del file prima di aprirlo (non si sa mai)....

Per scrivere un carattere alla volta, c'e' l'omologa funzione PUT. Leggi l'help del VB per avere maggiori dettagli.

Ciau,
Max

grazie
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.175 secondi.