Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

читаю из текстового файла, но ((

11K
11 сентября 2007 года
RID
8 / / 01.09.2005
вобщем у меня текстовой файл такой:
0725.04:32:53.516, 0725.04:32:56.515, 0, 85.114.2.7 , 137 , 0
0725.09:03:32.473, 0725.09:03:32.611, 0, 194.186.55.20, 2041, 0
0725.09:03:32.364, 0725.09:03:32.430, 0, 10.11.177.2, 1032, 0
и я читаю его так:
Sub ImportRange()
Dim ImpRng As Range
Dim Filename As String
Dim r As Long, c As Integer
Dim txt As String, Char As String * 1
Dim Data
Dim i As Integer

Set ImpRng = ActiveCell
On Error Resume Next
Filename = "e:\pipec\555.txt"
Open Filename For Input As #1
If Err <> 0 Then
MsgBox "Невозможно найти:" & Filename, vbCritical, "Ошибка"
Exit Sub
End If
r = 0
c = 0
txt = ""
Application.ScreenUpdating = False
Do Until EOF(1)
Line Input #1, Data
For i = 1 To Len(Data)
Char = Mid(Data, i, 1)
If Char = "," Then 'запятая
ActiveCell.Offset(r, c) = txt
c = c + 1
txt = ""
ElseIf i = Len(Data) Then 'конец строки
If Char <> Chr(34) Then txt = txt & Char
ActiveCell.Offset(r, c) = txt
txt = ""
ElseIf Char <> Chr(34) Then
txt = txt & Char
End If
Next i
c = 0
r = r + 1
Loop
Close #1
Application.ScreenUpdating = True

End Sub

а как мне читать если между ними нет запятых ?? например:
0725.04:32:53.516 0725.04:32:56.515 0 85.114.2.7 137 0
0725.09:03:32.473 0725.09:03:32.611 0 194.186.55.20 2041 0
0725.09:03:32.364 0725.09:03:32.430 0 10.11.177.2 1032 0

Пожалуйста напишите, что мне исправить и пчму. Я не собираюсь изучать VBA просто надо отчет по трафику разобрать срочно ((
11K
12 сентября 2007 года
RID
8 / / 01.09.2005
я меняю эту строку If Char = "," Then 'запятая
на If (Char = " ") Or (Char = " ") Or (Char = " ") Or (Char = " ") Or (Char = " ") Then 'запятая
но в таблице excel пустые столбцы (((
405
12 сентября 2007 года
Dmitrii
554 / / 16.12.2004
В подобных случаях разделять строку на части удобно с помощью функции Split(). Вот небольшой пример:
 
Код:
Sub Example()
Dim arrTemp
Const strTemp = "0725.04:32:53.516 0725.04:32:56.515 0 85.114.2.7 137 0"
arrTemp = Split(strTemp, " ")
For i = LBound(arrTemp) To UBound(arrTemp)
ActiveCell.Offset(0, i).Value = arrTemp(i)
Next i
End Sub
11K
15 сентября 2007 года
RID
8 / / 01.09.2005
спасибо!! все получилось.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог