Ho bisogno di leggere i dati da file di testo e utilizzare lo stesso nella mia applicazione. Sto usando VB 6.0. Quali comandi devo usare? Qualche esempio di codice sarebbe molto apprezzato.Come posso leggere i dati da un file di testo usando VB6?
risposta
Un tutorial e esempio di codice completo è disponibile here
Open Filename$ For Input As #FileHandle
Do While Not EOF(FileHandle) ' Loop until end of file
Line Input #FileHandle, TextLine$ ' Read line into variable
' Your code here
Loop
Close #FileHandle
Ecco come leggere un intero file di testo in una stringa - dal VB6 manual.
Function FileToString(strFilename As String) As String
iFile = FreeFile
Open strFilename For Input As #iFile
FileToString = StrConv(InputB(LOF(iFile), iFile), vbUnicode)
Close #iFile
End Function
ho ricevuto una "variabile non dichiarata "per #iFile. Utilizzando Dim iFile As Integer genera errori. Che tipo dovrebbe essere? – user2173353
Ha! Avevo bisogno di inizializzarlo in questo modo: iFile = FreeFile. OK. Grazie! – user2173353
Sto leggendo un file pdf decompresso e ricevendo l'errore "Input passato alla fine del file" sulla riga InputB – Shodan
Sono un po 'tardi per il gioco qui, ma il FileSystemObject che fa parte di Microsoft Scripting Runtime (scrrun.dll) può essere molto utile per questo.
Public Function ReadTextFileAsString(IN_sFilePath As String) As String
Dim myFSO As Scripting.FileSystemObject
Dim myTextStream As Scripting.TextStream
Dim myString As String
'Create a new FileSystemObject
Set myFSO = New Scripting.FileSystemObject
'Make sure file exists:
If myFSO.FileExists(IN_sFilePath) Then
Set myTextStream = myFSO.OpenTextFile(IN_sFilePath, ForReading)
myString = myTextStream.ReadAll()
Call myTextStream.Close
End If
'Assign Return Value
ReadTextFileAsString = myString
'Make sure to clean up when done.
Set myTextStream = Nothing
Set myFSO = Nothing
End Function
Esistono numerosi altri metodi disponibili per ottenere dati dal flusso di testo. Puoi anche leggere un certo numero di caratteri alla volta o riga per riga. Sarà necessario aggiungere Microsoft Scripting Runtime ai riferimenti del progetto, ma è davvero molto utile.
Assicurarsi che il file esiste:
If myFSO.FileExists(IN_sFilePath) Then
Set myTextStream = myFSO.OpenTextFile(IN_sFilePath, ForReading)
myString = myTextStream.ReadAll()
Call myTextStream.Close
End If
'Assign Return Value
ReadTextFileAsString = myString
se c'è solo testo nel file, allora si può leggere nel tutto in 1 variabile stringa con il seguente codice:
Private Sub ReadFile(strFile As String)
Dim intFile As Integer
Dim strData As String
intFile = FreeFile
Open strFile For Input As #intFile
strData = Input(LOF(intFile), #intFile)
Close #intFile
End Sub
un stringa di lunghezza variabile può contenere fino a circa 2 miliardi (2^31) caratteri
Ecco il codice per quello
Function ReadFileToText(filePath)
Dim objFile, objText, text
Set objFile = CreateObject("Scripting.FileSystemObject")
Set objText = objFile.OpenTextFile(filePath)
text = objText.ReadAll
objText.Close
Set objText = Nothing
Set objFile = Nothing
ReadFileToText = text
End Function
Maggiori dettagli si possono verificare http://smartreferences.blogspot.in
io vi rimando un metodo diverso per leggere e importare il contenuto alla finestra modulo
public sub readfile
Dim rtc As TextBox = New TextBox
rtc.Multiline = True
rtc.ScrollBars = ScrollBars.Both
rtc.Width = 400
rtc.Height = 200
Me.Controls.Add(rtc)
rtc.WordWrap = True
Dim FILE_NAME As String = "C:\Users\vcidex92\Desktop\suji\me.html"
If System.IO.File.Exists(FILE_NAME) = True Then
Dim objReader As New System.IO.StreamReader(FILE_NAME)
rtc.Text = objReader.ReadToEnd
objReader.Close()
Else
MsgBox("File Does Not Exist")
End If
end sub
Questo è VB.Net e la domanda è contrassegnata come VB6. – MarkJ
Grazie David, Andy –