Newsgroup: it.comp.lang.visual-basic
Titolo: Ho un grosso problema con l'apertura dei file, chi mi aiuta?

Ciao a tutti, mi chiamo Marco ho 13 anni e ho appena iniziato a usare
il
Visual Basic. Vorrei fare
un programma che mi apre un file, me lo visualizza in una casella di
testo e mi elimina dal file
tutte le vocali. So che le lettere hanno dei numeri che le
identificano,
quindi penso di poter riuscire,
a trovare un metodo per eliminarle. L'unico problema è che non riesco
ad
aprire il file. Ho guardato
l'help, ma non c'ho capito molto, anzi un paio di volte copiando
l'esempio dall'help mi cancellava
il contenuto del file. Qualcuno mi può per favore dare una mano per
aprire il file e dirmi come posso
cancellare tutte le vocali, senza che mi venga cancellato tutto il
file?
Grazie 1000 a chi mi aiuterà.

per aprire il file usavi lo statement Open???
Se si postami che ti mado un esempio
perche devi sapere che si possono aprire i files in vari modi:
1)sequenzialmente
2)random
3)binairo
nel tuo caso pernso sia meglio utilizzare la prima.
Bye Liga97


 tutte le vocali.
Per scandire un file carattere per carattere, ti conviene aprirlo in
binario:
HF = FreeFile
Open <nome_file> for Binary as HF
Ora stai attento: siccome devi togliere le vocali dal testo, il file alla
fine sarà più corto di quanto era all'inizio, io non conosco (e penso che
nemmeno ci sia, una volta bastava buttare degli zero alla fine del file) un
modo per "accorciare" i files, dovrai usare un file temporaneo dove
salverai, temporaneamente, il testo senza vocali. Quindi devi aprire un
nuovo file:
HFT = FreeFile
Open <nome_file_temporaneo> for Binary as HFT
Adesso puoi leggere un carattere alla volta dal file HF e, se è una
consonante, salvarlo nel file temporaneo:
Dim C as Char
For Caratteri = 1 to Lof(HF)      ' la funzione Lof(n) ti ritorna la
lunghezza in byte del file
    Get HF, ,C          ' legge una lettera
    C = UCase(C)       ' e la trasforma in maiuscola
    If Not( C="A" or C="E" or C="I" or C="O" or C="U") then ' se non è una
vocale...
        Put HFT, ,C              '... la scrive sul file temporaneo
    End If
Next Caratteri
A questo punto hai nel <nome_file> il tuo testo, nel <nome_file_temporaneo>
il risultato; puoi quindi rilasciare i files:
Close HF
Close HFT
Ora cancelli il vecchio file con il testo:
Kill <nome_file>
e ci sostituisci il nuovo:
Name <nome_file_temporaneo> as <nome_file>
Fatto.... difficile?

 wrote:
Ti ringrazio tanto del suggerimento, però Char non è un tipo di VB e
poi anche mettendo al posto di
char string*1 il nuovo file mi viene tutto pieno di caratteri bianchi,
senza il testo. Come posso fare?
Ti prego aiutami!
Marco


 senza il testo. Come posso fare?
A me questo funziona:
Dim Caratteri As Integer
Dim C As String * 1
Dim CTemp as String * 1
HF = FreeFile
Open "C:\prova.txt" For Binary As HF
HFT = FreeFile
Open "C:\provatemp.txt" For Binary As HFT
For Caratteri = 1 To LOF(HF)
    Get HF, , C
    CTemp = C
    C = UCase(C)
    If Not (C = "A" Or C = "E" Or C = "I" Or C = "O" Or C = "U") Then
        Put HFT, , CTemp
    End If
Next Caratteri
Close HF
Close HFT
Questo prende i dati da file C:\prova.txt e lo traforma nel corrispondente
c:\provatemp.txt senza vocali.... a me gira....
sei sicuro che il path del tuo file sorgente sia esatto?
Ciao, Alessio.

Non mi avete capito. Se io voglio contare quante volte si è andati a
capo, cosa devo contare?
Per favore...
Marco

...



Forse sei tu che non hai capito...
Devi contare i    Chr(13) seguiti da Chr(10)        (ossia vbCrLf)
--
Roal Zanazzi
z...@iol.it

un esempio selvaggio :
Private Sub Command1_Click()
Dim ritorni As Integer
For i = 1 To Len(Text1)
tmp = Mid(Text1, i, 2)
If tmp = vbCrLf Then ritorni = ritorni + 1
Next
MsgBox ritorni
End Sub
Prodigy2