что означает запятая в функции instr? - PullRequest
1 голос
/ 04 февраля 2020

В настоящее время мне поручено улучшить существующий файл VBA. Однако я не могу связаться с человеком, который сделал этот код. Так могу ли я узнать, что означает запятая в первом = InStr (2, sl, ",", 1)? Потому что я пошел, чтобы найти запятую в файле CSV, но я не мог найти вообще, используя как Ctrl F, а также вручную искать запятые между строк.

Private Sub readdata(filename As String, i As Integer)
Application.ScreenUpdating = False

Dim sl As String
Dim first As Integer
Dim second As Integer
Dim j As Long
j = 2
Set fs2 = CreateObject("Scripting.FileSystemObject") 
Set o_file = fs2.OpenTextFile(filename, 1, TristateFalse) 


 Do While Left(sl, 1) = "#"   
 sl = o_file.readline
 Loop

 Do While o_file.atendofstream <> True 'atendofstream = Read-only property that returns True if the file pointer is at the end of a TextStream file; False if it is not.
    sl = o_file.readline
    first = InStr(2, sl, ",", 1)  
    second = InStr(first + 2, sl, ",", 1)
    If second = 0 Then
         second = Len(sl) + 1
         End If

Ответы [ 3 ]

2 голосов
/ 04 февраля 2020

Функция InStr

"," ищет настоящую запятую в вашей строке sl

И да, CSV означает Значения, разделенные запятыми , но это не значит, что во всех файлах CSV присутствует настоящая запятая. Это объясняет, почему он возвращает 0.

1 голос
/ 04 февраля 2020

InStr ([начало], строка, подстрока, [сравнение])

начало: необязательно. Это начальная позиция для поиска

строка: строка для поиска.

substring: Подстрока, которую вы хотите найти.

Сравнение: Необязательно. Это тип сравнения для выполнения

1 голос
/ 04 февраля 2020

Синтаксис в InStr выглядит следующим образом:

InStr([ start ], string1, string2, [ compare ])

Так InStr(2, sl, ",", 1) ищет , в sl, где начальная позиция 2 и 1 в конце означает, что есть текстовое сравнение.

Помните, что .csv часто отделяется другим символом, отличным от ,, например ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...