Newsgroup: it.comp.lang.visual-basic
Titolo: Compatibilita' con Q-Basic (domanda)

Sono alle prime armi con il VBasic con il quale sto cercando di rifare
un vecchio programma che avevo scritto in Q-Basic.
Nel manuale che ho tra le mani, non compare un comando corrispondente
al vecchio Open del Q-Basic per gestire dei file creati dal programma
stesso. Questa e' la struttura del vecchio comando in Q-Basic: 
  OPEN Nomefile FOR RANDOM AS #1 LEN = LunghezzaRecord
  FIELD #1, 11 AS Variabile1, 8 AS Variabile2.
Esiste la possibilita' di far leggere al VBasic i vecchi file creati
dal Q-Basic o dovro' rassegnarmi a creare un nuovo database in cui
inserire a mano tutti i records?  Sono + di circa 2.000, sarebbe un
lavoraccio.
Ringrazio anticipatamente.
Paolo
_____________________________________________
           SESSOTURISMO
Inchiesta sulle ragazze che vivono di 
turismo sessuale a Recife - Brasile
http://members.xoom.it/brasil21/turisex/index.htm

 ha scritto nel messaggio
news:3a1e24d4...@news.tin.it...


 Paolo
meglio ancora, prova a fare cosě:
in testa al modulo/form inserisci quanto segue:
    Private Type MyRecord
        Variabile1 As String * 11
        Variabile2 As String * 8
    End Type
e successivamente, per accedere al file
Dim myRec As MyRecord
OPEN Nomefile FOR RANDOM AS #1 LEN = Len(myRec)
GET #1, 1, myRec  ' legge il primo record
GET #1,10, myRec ' legge il decimo record
...
fai attenzione alle istruzioni LSet e RSet, che non vengono piů supportate;
idem per le fuinzioni MKI$(), MKS$(), CVI(), CVS()... ecc. ecc.
per scrivere/leggere valori numerici, basta utilizzare il corretto tipo a
livello di definizione tipo
    Private Type MyRecord
        Numero1 As Integer
        Numero2 As Double
        ' ecc.
    End Type
e continuare ad utilizzare le solite GET/PUT;
ciao

Ciao, Paolo
la Open che cerchi è su MSDN, di cui allego uno stralcio
Open Statement Example
This example illustrates various uses of the Open statement to enable input
and output to a file.
The following code opens the file TESTFILE in sequential-input mode.
Open "TESTFILE" For Input As #1
' Close before reopening in another mode.
Close #1
This example opens the file in Binary mode for writing operations only.
Open "TESTFILE" For Binary Access Write As #1
' Close before reopening in another mode.
Close #1
The following example opens the file in Random mode. The file contains
records of the user-defined type Record.
Type Record   ' Define user-defined type.
   ID As Integer
   Name As String * 20
End Type
Dim MyRecord As Record   ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
' Close before reopening in another mode.
Close #1
This code example opens the file for sequential output; any process can read
or write to file.
Open "TESTFILE" For Output Shared As #1
' Close before reopening in another mode.
Close #1
This code example opens the file in Binary mode for reading; other processes
can't read file.
Open "TESTFILE" For Binary Access Read Lock Read As #1
----------------------------------------------------------------------------
----
come vedi non è sparita !
Ciao, Vito
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao, Vito
ciao


"HellBoy", Vito e Assatarram, grazie per le risposte.
Ho provato a seguire le vostre istruzioni, ma non riesco a scrivere i
comandi in modo corretto (come dicevo sono alle prime armi e gia' quel
"Private Type MyRecord" mi sconvolge).
Sperando di non apparire troppo rompiballe, chiedo se qualcuno ha la
pazienza di scrivermi il codice per aprire (in modalita' random) un
file che si chiama "Gir.oma", ogni record e' lungo 19, ed e' formato
da 4 campi rispettivamente di 3, 6, 5 e 5.
Confido sulla vostra benevolenza per non beccarmi qualche maledizione,
ho appena comprato un manuale della Apogeo (quando ho visto "for
Dummies" mi son detto: e' per me!), stanotte studio e domani mi faccio
trovare preparato  :-))
grazie ancora


 trovare preparato  :-))
[snip]
senza offesa, ma il codice che ti abbiamo postato è praticamente bello e
funzionante....
prova a rileggerti con calma i vecchi post :))
se proprio non ce la fai (...) prova a sfogliare il sopra citato libro, poi
magari ne riparliamo, ok?
ciao

la Open che cerchi č su MSDN, di cui allego uno stralcio
(...)
Ciao Vito, dove e' possibile procurarsi la MSDN?


magari ne riparliamo, ok?
Non avevo dubbi che il codice che in 3 mi avete gentilmente fornito
sia perfetto, ma le mie difficolta' sono dovute al fatto che l'MSDN
non ce l'ho, e cosi' non riesco a capire con cosa devo sostituire
"myRec" e "MyRecord". Inoltre, nel codice che mi hai scritto:
   Private Type MyRecord
        Variabile1 As String * 11
        Variabile2 As String * 8
    End Type
Dim myRec As MyRecord
OPEN Nomefile FOR RANDOM AS #1 LEN = Len(myRec)
GET #1, 1, myRec  ' legge il primo record
GET #1,10, myRec ' legge il decimo record
dichiari le variabili "Variabile1-2" che non vengono poi usate.
Certamente mi sono spiegato male, ma era solo questo che chiedevo.
Scusate.


Ciao,
Il codice che ti hanno fornito è immediato !
Con questa parte tu definisci una struttura record a livello di "Tipo"
   Private Type MyRecord
        Variabile1 As String * 11
        Variabile2 As String * 8
    End Type
Con questa istruzione crei una variabile di "Tipo" MyRecord
cioè, myRec è una variabile che contiene sue sottocampi, Variabile1
di tipo stringa lunga 11 caratteri e  Variabile2 di tipo stringa lunga 8
caratteri.
    Dim myRec As MyRecord
Con questa istruzione apri il file Nomefile in maniera diretta e
stabilisci che l'ampiezza in caratteri di ogni record che leggerai
è pari alla lunghezza della variabile myRec.
    OPEN Nomefile FOR RANDOM AS #1 LEN = Len(myRec)
L'istruzione GET ti ritorna del file (#1) , il record numero 1, nella
variabile myRec
di lunghezza complessiva 19 caratteri. Ti ritroverai le informazioni in
    myRec.Variabile1 (contenente i primi 11 caratteri)
    myRec.Variabile2 (contenente gli altri 8 caratteri)
Tutte le letture che farai con myRec, conterranno i dati nei suoi
sottocampi.
    GET #1, 1, myRec  ' legge il primo record
    GET #1,10, myRec ' legge il decimo record
Ciao, Vito
-- 
Posted from 
smtp2.libero.it
 [193.70.192.52] 


Ciao, Paolo
    di solito lo si installa con VB6.
Se ho un po' di tempo ti mando qualcosa a 
pao...@tiscalinet.it
 
Ciao, Vito 
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 


    myRec.Variabile2 (contenente gli altri 8 caratteri)
e' questa combinazione che mi mancava! Ho provato:
 
  Label1.Caption=Variabile1
  Label1.Caption= myRec
  Label1.Caption=MyRecord
 
e tutte le varie combinazioni, ma non ho pensato che Variabile1 fosse
una proprieta' di myRec. 
Com'e' dura la vita quando si e' ignoranti :-))
