Вы можете использовать встроенный модуль tls
, который обеспечивает расширения net.Server
и net.Socket
. Таким образом, он работает примерно так же, как создание сервера net
, с большим количеством опций и большим количеством событий. В разделе tls.createServer
приведен простой пример, который показывает простой сервер, близкий к вашему коду.
Your question is not quite clear, but I think this is what you want: Примечание. По какой-то причине часть, перехватывающая ошибки, вставлена неправильно. Извините
Public Sub ReadCSV()
'' Assumes all records:
'' Have 5 fields
'' The fields are delimited by a ;
'' The Last field ends in a ;
Dim FileName As String
Dim ExcelRow As Long
Dim WorkSheetName As String
Dim FieldValue(5) As String
Dim FieldNo As Integer
Dim StringPosition As Integer
Dim LineFromFile As String
Dim CharFromLine As String
WorkSheetName = "Sheet1"
ExcelRow = 2 '' Assumes Row 1 is a heading that you should not delete
'' Get the FileName and Open the file
If Application.FileDialog(msoFileDialogOpen).Show <> -1 Then Exit Sub
FileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
On Error GoTo OpenError
Open FileName For Input As #1
'' Clear old data from the workbook
sRange = WorkSheetName + "!A2:E65536"
Range(sRange).ClearContents '' Preserves formatting
'' Read The file one line at a time
On Error GoTo ReadError
While Not EOF(1)
Line Input #1, LineFromFile
Debug.Print LineFromFile
FieldNo = 1
While FieldNo <= 5 '' 5 is the number of fields in a record
DoEvents
FieldValue(FieldNo) = ""
StringPosition = 1
'' Examine each character from the line
While StringPosition <= Len(LineFromFile)
CharFromLine = Mid(LineFromFile, StringPosition, 1)
If CharFromLine = ";" Then '' ";" is the delimitor in the delimited file
FieldNo = FieldNo + 1
If FieldNo < 6 Then FieldValue(FieldNo) = ""
Else
FieldValue(FieldNo) = FieldValue(FieldNo) + CharFromLine
End If
'' Test to see if we're at the end of a line, but haven't got all the fields yet
If StringPosition = Len(LineFromFile) And FieldNo < 6 Then
FieldValue(FieldNo) = FieldValue(FieldNo) + Chr(10) '' Add a LineFeed to represent the new line
Line Input #1, LineFromFile
StringPosition = 0
End If
StringPosition = StringPosition + 1
Wend
Wend
'' Put the Data in the Workbook
For FieldNo = 1 To 5
Sheets(WorkSheetName).Cells(ExcelRow, FieldNo).Value = FieldValue(FieldNo)
Next FieldNo
ExcelRow = ExcelRow + 1
Wend
Exit Sub
OpenError:
Call MsgBox("Error Opening File:" + FileName, vbCritical, "File Open Error")
Exit Sub
ReadError:
Call MsgBox("Error Reading File:" + FileName, vbCritical, "File Read Error")
End Sub
Вероятно, вы обнаружите, что он отлично открывается в openoffice. Я сделал.
В этом случае вы можете сохранить его как таблицу Excel и распространить оба файла своим клиентам.