Member 10188842 Ответов: 2

Нужна помощь с открытием и закрытием файлов в VB.NET.


Greetings,

     I'm a old time VBA and Basic programmer. I need a assist with opening and closing files in VB.NET. The CSV and the code is below. Can someone assist me with converting this to VB.NET. I will appreciated it. Thanks 





"James","ll","ddd",473.57,12700.00,0.03,,,"jan"
"Frank","rr","lll",392.15,8600.00,0.04,"GTD","o","feb"
"Nikola","C","ff",366.55,6900.00,0.05,,,"march"
"Harrison","df","rr",360.76,6900.00,0.05,,,"aug"
"Mark","tm","gg",358.60,8200.00,0.04,,,"julu"


open "C:\Users\john\Desktop\data5.txt" for input as 1
open "C:\Users\john\Desktop\output.txt" for output as 2


Input #1,name1,code1,code2,num1,num2,num3,num4,scode1,scode2,date1


'Calcuations section


write #2,Name1, Evaluation


close 1
close 2


Что я уже пробовал:

Я пытался
FileOpen(filenum, "data5.txt", OpenMode.Input)

[no name]

https://msdn.microsoft.com/en-us/library/system.io.file.open(v=против 110). aspx

2 Ответов

Рейтинг:
2

Ralf Meier

Например вот так :

Imports System.IO



Public Sub LoadData()

        Dim myFile As String = "c:\Data\myFile.DAT"

        Dim fs As FileStream = Nothing
        Dim CSV As StreamReader = Nothing
        Dim rowdata As String

        Try
            ' open the File
            fs = New FileStream(myFile, FileMode.Open, FileAccess.Read)
            CSV = New StreamReader(fs)

            ' load one row
            rowdata = CSV.ReadLine  

            CSV.Close()

        Catch ex As Exception
            CSV.Close()
        End Try

    End Sub


Рейтинг:
1

Richard Deeming

Чтение и запись файлов в VB.NET значительно отличается от VB6 / VBA. Это, вероятно, ближе к Filesystemobject, с[^], что было единственным способом чтения и записи файлов из VBScript.

У MSDN есть хорошая документация:
Как читать из текстовых файлов в Visual Basic[^]
Как писать текст в файлы с помощью StreamWriter в Visual Basic[^]

В этом случае это выглядит так, как будто вы пытаетесь читать из CSV-файла. Существует встроенный класс, чтобы помочь с этим, или вы можете использовать стороннюю библиотеку.
Как читать из текстовых файлов с разделителями-запятыми в Visual Basic[^]
CsvHelper[^]

Так, например:

Using reader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Users\john\Desktop\data5.txt")
    reader.TextFieldType = FileIO.FieldType.Delimited
    reader.SetDelimiters(",")
    
    Using writer As New StreamWriter("C:\Users\john\Desktop\output.txt")
        While Not reader.EndOfData
            Dim currentRow As String() = reader.ReadFields()
            Dim name1 As String = currentRow(0)
            Dim code1 As String = currentRow(1)
            Dim code2 As String = currentRow(2)
            
            ' Converting strings to numbers :- 
            ' this can throw an exception if the string is not a valid number.
            Dim num1 As Double = Double.Parse(currentRow(3))
            Dim num2 As Double = Double.Parse(currentRow(4))
            Dim num3 As Double = Double.Parse(currentRow(5))
            Dim num4 As Double = Double.Parse(currentRow(6))
            
            Dim scode1 As String = currentRow(7)
            Dim scode2 As String = currentRow(8)
            Dim date1 As String = currentRow(9)
            
            ' Calcuations section
            
            writer.WriteLine("""{0}"",""{1}""", name1, Evaluation)
        End While
    End Using
End Using

Использование Оператора (Visual Basic)[^]
Двойной.Метод Синтаксического Анализа (Система)[^]
Строка.Метод Форматирования (Система)[^] (объясняет забавно выглядящую строку, переданную WriteLine метод)