PDA

View Full Version : Stringhe visual basic


Misagi
13-01-2005, 15:54
Salve ;)
Vorrei sapere in che modo posso eliminare gli " quando scrivo stringhe su file .txt in visual basic...

For Index = 0 To 10
Write #f, "Pack #" & (Index)
next Index

il risultato è
"Pack #0"
"Pack #1"
"Pack #2" ...

vorrei togliere tutti quei apici :muro: :muro:

mslv
13-01-2005, 16:43
usa il metodo Print al posto di Write...


veramente non ne conosco le differenze solo che con i file di testo print
funziona sempre senza apici....

For Index = 0 To 10
Print #f, "Pack #" & (Index)
next Index

Misagi
13-01-2005, 20:55
Originariamente inviato da mslv
usa il metodo Print al posto di Write...


veramente non ne conosco le differenze solo che con i file di testo print
funziona sempre senza apici....

For Index = 0 To 10
Print #f, "Pack #" & (Index)
next Index

Grazie mille ho risolto ;) ...c'è sempre da imparare ihhihi grazie ancora :)

Misagi
14-01-2005, 16:50
Un'altra domanda...come posso contare le righe in un file .txt? Potreste indicarmi il codice da utilizzare?

mslv
14-01-2005, 19:10
Ehem... veramente non me lo ricordo proprio bene... :ops: :muro:

Zagor HW
21-01-2005, 19:14
Originariamente inviato da Misagi
Un'altra domanda...come posso contare le righe in un file .txt? Potreste indicarmi il codice da utilizzare?

Se ti dovesse interessare ancora:

Devi usare la funzione lof ( che sta per la lunghezza del file)
L'unico inconveniente è che il valore restituito è in byte quindi bisogna utilizzare un trucchetto per poterlo trasformare il numero di record:

lunghezza = (Fix(LOF(1) * 0.014)) + 1

0.014 è il valore approssimato che da il rapporto fra la lunghezza in byte e il numero effettivo dei record, basterà quindi moltiplicarlo per la lunghezza in byte del file, toglierci la parte decimale e aggiungerci 1 e il gioco è fatto!

Spero di essere stato chiaro... Ciao!!!

Misagi
22-01-2005, 08:21
Originariamente inviato da Zagor HW
Se ti dovesse interessare ancora:

Devi usare la funzione lof ( che sta per la lunghezza del file)
L'unico inconveniente è che il valore restituito è in byte quindi bisogna utilizzare un trucchetto per poterlo trasformare il numero di record:

lunghezza = (Fix(LOF(1) * 0.014)) + 1

0.014 è il valore approssimato che da il rapporto fra la lunghezza in byte e il numero effettivo dei record, basterà quindi moltiplicarlo per la lunghezza in byte del file, toglierci la parte decimale e aggiungerci 1 e il gioco è fatto!

Spero di essere stato chiaro... Ciao!!!
Grazie mille ;)

matpez
22-01-2005, 11:34
Oppure se nn lavori con i ricord, ma solo con dei file da te creati ti conviene usare questo metodo:

Dim nFreeFile As Integer
Dim sAux As String
Dim nI As Integer


nI = 0
nFreeFile = FreeFile
Open "D:\Cena.txt" For Input As #nFreeFile
While Not EOF(nFreeFile)
Line Input #nFreeFile, sAux
nI = nI + 1
Wend
Close #nFreeFile

MsgBox "Rughe del file: " & nI

Zagor HW
22-01-2005, 13:10
Originariamente inviato da matpez
Oppure se nn lavori con i ricord, ma solo con dei file da te creati ti conviene usare questo metodo:
[/CODE]

Scusa mi potresti spiegare che convenienza c'è visto che con un'istruzione si risolve tutto? (Non è per critica nei tuoi confronti... è solo per un info visto che non sono ancora molto esperto VB)

matpez
22-01-2005, 14:26
Il tuo sistema è ottimo se su calcola la dimensione di un record e la si moltiplica per la dimensione del file, perchè si capisce quanti record hai dentro.

Ma moltiplicare per una costante in questo caso nn è correttissimo (a mio parere) perchè tu potresti anche avere una riga sola ed il tuo calcolo te ne porterebbe ad averne di più.

Invece tirando su riga per riga, cioè fino a che il nn trova il carattere ascii 10 e 13 allora la conta come una riga unica!

Zagor HW
22-01-2005, 17:08
Ah ok chiaro grazie ciao!