2015-11-13 2 views
0

Я пытаюсь сделать некоторый текстовый анализ некоторого кода SAS в VBA. Я бы хотел пропустить комментарии.Прочитайте один символ за раз, пока '*', '% *' или '/ *' в VBA

Но я могу найти способ читать строки за раз, используя заявление Line Input. Но это делает его очень трудно избежать комментариев один и ту же линию, как незакомментированная код, как

data _null_; *Comment; 

Так что я хотел бы знать, если это возможно, чтобы прочитать один символ за один раз в Vba, пока комментарий старт не encounterd?

+0

почему бы не просто прочитать строку в строковую переменную, то сдирать любой нежелательный комментарий? –

+0

Потому что некоторые комментарии охватывают несколько строк. Подобно/* code * newline * code */ –

+0

Тогда у вас больше полнофункциональная проблема синтаксического анализа, которая, вероятно, лучше всего обрабатывается регулярными выражениями, применяемыми ко всему файлу, считываемым в одну строку. –

ответ

1

Поскольку файлы маленькие, один вариант, чтобы прочитать весь файл в массив байтов:

Dim handle As Long 
Dim bytes() As Byte 
Dim path As String 

path = "C:\somefile.txt" 
handle = FreeFile 
Open path For Binary Access Read As handle 
ReDim bytes(LOF(handle) - 1&) 
Get handle, , bytes 
Close handle 

Dim char As Variant 
For Each char In bytes 
    Debug.Print Chr$(char) 
Next char 
Смежные вопросы