Newsgroup: it.comp.aiuto
Titolo: Qbasic Informazioni

Salve,
ho un piccolo problema e spero che qualcuno di Voi mi aiuti a
risolverlo.
Vorrei sapere qual'e' l'istruzione per leggere con Qwbasic un file
formato txt
Ho provato a dargli il "Type" ma non ho visionato nulla, al contrario
sotto dos il medesimo comando da i risultati sullo schermo del file
formato testo appena letto.
Grazie per l'attenzione e salutoni a tutti.   
rob...@Bigfoot.com
http://www.geocities.com/Paris/Cafe/4017/
ICQ UIN: 12475383

formato testo appena letto.
Okkio : il comando "type" e' un comando interno DOS e non c'entra
nulla col linguaggio interpretato Quick Basic.
In QBasic devi scrivere qualcosa del genere :
OPEN "MIOFILE.TXT" FOR INPUT AS #1
WHILE NOT EOF(1)
      LINE INPUT #1, LINEA$
      PRINT LINEA$
WEND
CLOSE #1
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Il mio indirizzo di posta elettronica e' momentanea-
mente fuori uso...
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------

 wrote in message
37943e76...@diesel.cu.mi.it...


Ci sono tanti bei linguaggi, + o - facili, + o - potenti....
Non credo esista un linguaggio piu' facile da utilizzare del caro
vecchio BASIC.
Come dice Peter Norton nella sua guida al Visual Basic :
"Quando una volta chiesero a un grande mago dei computer se pensava
che il linguaggio BASIC sarebbe esistito fra mille anni, egli rispose
di si ma che sarebbe stato qualcosa di completamente diverso da quello
attuale".
Io ho constatato sulla mia pelle che il Visual Basic e' di una
facilita' estrema e di una potenza sufficiente per svolgere bene la
maggior parte delle applicazioni.
Il BASIC moderno ha ereditato dal suo nonnino una grande
caratteristica : e' il linguaggio di programmazione piu' facile e
diffuso nel mondo.
Andrea Laforgia        (
andrea_...@bigfoot.com
)


 Grazie per l'attenzione e salutoni a tutti.
--
 ciao
 mauro
 ********************************
  email:  
ma...@intenet.net
  web:    
www.intenet.net/mauro/
  other:  
www.uaar.it
  icq:    42859313
           EN TARO ADUN
 *********************************

> io in java scrivo "java nomefile.class <file.txt
Cosa c'entra?
-- 
Paolo Perini
lau...@digibank.it
http://www.digibank.it/kaiohshin/
"Non ho bisogno delle riviste! La mia vista divina mi permette
di vedere chi fa la doccia e chi si cambia!" - il dio KaiohShin

 wrote in message
378d6be1...@diesel.cu.mi.it...


CLOSE #1
Ciao ringrazio per la gentile informazione, approfitto della
circostanza per chiedere come si puo' fare seguendo la istruzione
sopra esposta, di salvare o definire i dati di LINEA$ in determinati
valori da me definiti.
Ad esempio se LINEA$ mi scrive "                             PROVARE
LA SCRITTURA ECCETERA"
io vorrei ad esempio che lo spazio bianco che intercorre tra "      e
PROVARE  , venisse eliminato, ossia creare uno campo di 7 caratteri
per inserire il termine "PROVARE" DA solo e senza spazi e cosi' dicasi
per il resto della frase.
Sperando di essere stato chiaro e restando in attesa di una
graditissima risposta, ringrazio anticipatamente.
Ciao Roberto.


Entro nella stanza e...cosa ti vedo ? sette lettini.
Su uno di essi c'era scritto O-Line :
#Ciao ringrazio per la gentile informazione, approfitto della
#circostanza per chiedere come si puo' fare seguendo la istruzione
#sopra esposta, di salvare o definire i dati di LINEA$ in determinati
#valori da me definiti.
Be', dunque, quello che vuoi fare si chiama "tokenizing" cioe'
estrarre ogni parola ("token") dalla stringa.
Ti illustro di seguito il procedimento, anche se un ng sulla
programmazione e' il piu' adatto per questi problemi :
DIM I AS INTEGER
DIM L AS INTEGER
LINEA$ = "       PROVARE     PER    CREDERE     "
LINEA$ = LTRIM$(RTRIM$(LINEA$))
I = 1
L = LEN(LINEA$)
WHILE (I <= L)
      TOKEN$ = ""
      WHILE (I <= L) AND (MID$(LINEA$, I, 1) <> " ")
            TOKEN$ = TOKEN$ + MID$(LINEA$, I, 1)
            I = I + 1
      WEND
      PRINT TOKEN$
      WHILE (I <= L) AND (MID$(LINEA$, I, 1) = " ")
            I = I + 1
      WEND
WEND


 di vedere chi fa la doccia e chi si cambia!" - il dio KaiohShin
--


Ma perchè QBasic?
A me dava molte più soddisfazioni fare i miei programmi con basic che con vb.
E poi i compilatori basic sono quasi privi di bug :-)
Inoltre basic è molto più facile di quello visuale
Zai Jian
Sephiroth
E-Mail: 
se...@freemail.it
Remove NOSPAM to reply
ICQ#20857755
IRC Sephiroth & Gotenks
IGZ Sephiroth_88
(^_^) ------"No war no cry"------ (^_^)

Entro nella stanza e...cosa ti vedo ? sette lettini.
Su uno di essi c'era scritto Sephiroth :
#A me dava molte più soddisfazioni fare i miei programmi con basic che con vb.
#E poi i compilatori basic sono quasi privi di bug :-)
#Inoltre basic è molto più facile di quello visuale
Si, ma e' assolutamente impensabile di poter continuare a programmare
in un linguaggio che, oltre a non conoscere cosa sia la programmazione
modulare, non conosce neanche quella orientata agli oggetti ! :)


 wrote in message
378d2d7a...@diesel.cu.mi.it...


Entro nella stanza e...cosa ti vedo ? sette lettini.
Su uno di essi c'era scritto Paolo 83 RE :
#Io poi so anche il caro vecchio TurboPascal a livello scolastico, forse un
#po' di più, ma non eccessivamente...
#Volevo imparare C, ma ho pensato che prima fosse il caso di imparare le basi
#della prog in win senza traumi :)
In quanto al TP e' decisamente superato, adesso si punta su Delphi
(molto vicino al C++ Builder) e pienamente orientato agli oggetti
(visuale, tra l'altro).
In quanto al C e' bene scansare la programmazione classica per Windows
in questo linguaggio in quanto bisogna provvedere a gestire tutto
manualmente ed e' una grande fatica.
Meglio imparare il C++ e avvalersi di ambienti di sviluppo visuali
come, appunto, C++ Builder o Visual C++.


 wrote in message
37932516...@diesel.cu.mi.it...


Entro in it.comp.aiuto e...cosa ti vedo ? sette lettini.
Su uno di essi c'era scritto Paolo 83 RE :
#Io difatti intendevo passare a visual c++ più avanti, diciamo quando con
#visual basic che è molto semplice ma in certe cose limitato avrò una buona
#esperienza.
Attento, pero', perche' per l'utilizzo del VC++ e' necessaria una
buona conoscenza del C++ e della programmazione ad oggetti in
generale, che prescindono dalla piattaforma utilizzata.


 wrote in message
378e2dd...@diesel.cu.mi.it...


I = 1
Ok, ti ringrazio tantissimo Andrea per la tua gentile
informazione,l'ho provata ed ha funzionato,vorrei solamente sapere i
parametri base dove sono inseriti, nel senso che se ad esempio
decidessi su un  testo di due righe come :
"CINETE  bla blo blu
CA "          riportarlo in una sola riga "CINETECA      bla blo blu "
dove bisognorebbe agire, senza variare gli eventuali valori riportati
in balo blo blu?
Inoltre se tu potessi consigliarmi un manuale abbastanza sintentico di
queste istruzioni QBasic, al fine di saperne almeno in parte il minimo
indispensabile.
Resto in attesa di una tua risposta e ti ringrazio nuovamente.


you wrote :
#parametri base dove sono inseriti, nel senso che se ad esempio
#decidessi su un  testo di due righe come :
#"CINETE  bla blo blu
#CA "          riportarlo in una sola riga "CINETECA      bla blo blu "
#dove bisognorebbe agire, senza variare gli eventuali valori riportati
#in balo blo blu?
Be', in questo caso conviene trasformare tutto in sub-routine da
richiamare all'occorrenza per avere da una stringa tutti i suoi token
uno alla volta.
Il listato che segue e' quello di un programma in cui dichiaro
GetToken() come una sub-routine che accetta S come parametro da cui
estrarre i token e salva il singolo token in T.
Si puo' adoperare sia su una stringa come "CINETE bla blo blu" che su
"CA", estrarre i primi due token da entrambe e attaccarli.
DECLARE SUB GetToken (S AS STRING, T AS STRING)
DIM MyS AS STRING
DIM MyT AS STRING
MyS = "  CINETE   bla blo blU"
WHILE MyS <> ""
      CALL GetToken(MyS, MyT)
      PRINT MyT
WEND
SUB GetToken (S AS STRING, T AS STRING)
 
    IF (S <> "") THEN
       S = LTRIM$(S)
       T = ""
       WHILE ((MID$(S, 1, 1) <> " ") AND (S <> ""))
             T = T + MID$(S, 1, 1)
             S = MID$(S, 2)
       WEND
    END IF
 
END SUB
#Inoltre se tu potessi consigliarmi un manuale abbastanza sintentico di
#queste istruzioni QBasic, al fine di saperne almeno in parte il minimo
#indispensabile.
Non so, a dire il vero, se una sintesi dei comandi possa aiutarti.
Per la programmazione si necessita di un bagaglio di conoscenze un po'
piu' ampio.
Comunque un manuale del vecchio QBasic dovrebbe trovarsi in linea.
Prova a cercarlo su altavista con "QBasic tutorial" altrimenti ricorri
all'help del programma che riassume le funzioni/subroutine e le
istruzioni per categorie funzionali.


istruzioni per categorie funzionali.
Grazie mille, davvero di cuore, per le istruzioni (tutte corrette e
funzionanti che mi stai dando).
Queste informazioni le sto usando per monitorare l'andamento dei
titoli della borsa di milano tramite la scheda televideo miromedia
pctv e un altro pc sul quale e' montata questa scheda.
Ora per salvare i dati contenuti nella pagina 311 (per esempio) devo
lanciare una macro che va nel programma televideo della mia scheda, va
su File -> Save as e lo salvo sempre con uno stesso nome; quindi
lancio (sempre all'interno della macro) il programma che grazie a te
sto completando.
L'unico difetto di questo sistema e' che una volta lanciata la macro,
il pc e' totalmente occupato ed io non posso eseguire o cambiare
niente altrimenti tutto si impalla.
Mi stavo chiedendo se c'e' qualcosa che possa fare per poter salvare
il contenuto della pagina 311 in un file tramite il programma qbasic.
In seguito potrei elaborare quel file tramite le istruzioni che gia'
mi hai detto, cosi' facendo potrei lanciare anche piu' programmi
contemporanemente.
Ti ringrazio nuovamente
Roberto


you wrote :
#Mi stavo chiedendo se c'e' qualcosa che possa fare per poter salvare
#il contenuto della pagina 311 in un file tramite il programma qbasic.
Salvare i dati su file in QBasic e' possibile.
Bisogna solo capire come fa il programma ad interfacciarsi con la
pagina 311.
Se riesce ad aprirla e a leggerla come file di testo, la cosa si puo'
fare.


fare.
Grazie mille, io pero' purtroppo non possiedo il programma della miro
in versione sorgente ne so come il programma si interfaccia con le
pagine di televideo; credevo esistesse un comando "generale" che mi
permettesse di leggere dal qbasic direttamente i dati della scheda
televideo. 
Se hai qualche altro suggerimento ti prego di darmelo.
Ciao


you wrote :
#Grazie mille, io pero' purtroppo non possiedo il programma della miro
#in versione sorgente ne so come il programma si interfaccia con le
#pagine di televideo; credevo esistesse un comando "generale" che mi
#permettesse di leggere dal qbasic direttamente i dati della scheda
#televideo. 
No, non credo proprio che esista...
Al limite quello che si potrebbe fare e' implementare una lettura via
porta seriale, ma oltre a non sapere come si fa in QBasic, mi e' anche
difficile immaginare quali dati prelevare.


difficile immaginare quali dati prelevare.
Scusa se ti disturbo ancora, mi piacerebbe tanto poter sviluppare il
programma che ho fatto (e che sembra funzionare) per poter archiviare
i dati del televideo di un intera giornata; per fare questo pero'
dovrei copiare i dati presenti in ultimo.txt (il file testo
contententi i dati provenienti dalla scheda televideo) in un nuovo
file (per esempio mib30.txt) e fare in modo di accodare la seconda
registrazione alla prima, evitando di riscrivere sempre sopra i stessi
dati.
Putroppo non so fare nemmeno questo e volevo chiederti se puoi darmi
una mano ;)
Grazie mille!
rob...@Bigfoot.com
http://welcome.to/o-line
ICQ UIN: 12475383

La sequenza delle istruzioni è la seguente:
open "ultimo.txt " for input as #1  ' apre il file da leggere
open "mib30.txt" for append as #2  ' apre il file su cui aggiungere i dati
do while not eof(1)  ' ciclo di ripetizione che termina alla fine del file
  line input #1,a$    ' legge un record da ultimo.txt
  print #2,a$   ' scrive su mib30.txt
loop
--
AndreaP


La sequenza delle istruzioni č la seguente:
Grazie di nuovo; anche quest'istruzione ha funzionato egregiamente!
Io avevo trovato una soluzione peor' il programma era sulle 3/400
righe, e il risultato era penoso ;)
Il problema che mi rimane e' assemblare il tutto;
Cioe'
1) apro il file ultimo.txt (mi hai gia dato le istruzioni)
2) faccio il tokenizing di ogni riga e la confronto con delle
condizioni (fino a qui tutto funziona)
3) ora dovrei sempre delle stesse LINEA$ unirle a due a due, magari
togliendo i dati che non mi occorrono (311 ecc ecc) dalla pagina
contentente:
        311 TELEVIDEO Lu 19 Lug 15:06:14
 
 
   Azioni MIB30                     3/5 
            16-07  19-07  19-07   19-07 
            Uffic. Apert. Flash  % Fl/U 
            Rifer.               % Fl/R 
 
 ENI        6.0870 6.0500 6.1600    1.2 
            6.0610  09:40  14:48    1.6 
 FIAT       3.4640 3.3900 3.4800    0.4 
            3.4310  09:40  14:48    1.4 
 FINMECCA   0.9400 0.9460 0.9440    0.4 
 NICA       0.9403  09:40  14:43    0.3 
 GENERALI   33.320 33.450 33.400    0.2 
  ASS       33.250  09:40  14:48    0.4 
 INA        2.3300 2.2900 2.3000   -1.2 
            2.3390  09:40  14:47   -1.6 
 ITALGAS    4.1290 4.1000 4.0600   -1.67
            4.0880  09:40  14:44   -0.68
 
   MIB30  19-07 14:46   35842  +0.20 %  
 
   Indice Borsa 301  1 Euro=1936.27 Lir%
Tu mi avevi gia dato delle istruzioni che tramite una sub-routine che
ho inserito prima che il programma inizi a salvare il file ultimo.txt
in mib30.txt pero' (forse non corrispondono le stringhe) ottengo
sempre le "solite righe" ovvero dopo aver letto la riga
 ENI        6.0870 6.0500 6.1600    1.2 
e la riga
            6.0610  09:40  14:48    1.6 
vorrei che le unisse in una sola del tipo:
 ENI        6.0870 6.0500 6.1600    1.2  6.0610  09:40  14:48    1.6 
per poi salvarla in mib30.txt.
Grazie mille e scusa per il disturbo.
Roberto


Basta leggere 2 stringhe invece che una e poi collegarle:
do while not eof(1)  ' ciclo di ripetizione che termina alla fine del file
  line input #1,a$    ' legge il primo record da ultimo.txt
  line input #1,b$    ' legge il successivo record da ultimo.txt
  c$=a$+b$             ' li collega
  print #2,b$   ' scrive su mib30.txt
loop
AndreaP
