2010-05-20 10 views

risposta

11

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 
+0

Grazie David, Andy –

15

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 
+0

ho ricevuto una "variabile non dichiarata "per #iFile. Utilizzando Dim iFile As Integer genera errori. Che tipo dovrebbe essere? – user2173353

+1

Ha! Avevo bisogno di inizializzarlo in questo modo: iFile = FreeFile. OK. Grazie! – user2173353

+0

Sto leggendo un file pdf decompresso e ricevendo l'errore "Input passato alla fine del file" sulla riga InputB – Shodan

3

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.

1

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 
0

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

0

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

-1

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 
+0

Questo è VB.Net e la domanda è contrassegnata come VB6. – MarkJ

Problemi correlati