Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсить строку из чисел / 23 сообщений из 23, страница 1 из 1
07.03.2012, 17:12
    #37695630
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Имеется текстовый файл содержащий столбцы с числами между которыми может быть разное количество пробелов, требуетсвя выделить числа в строке и присвоить их переменным. Сплит работает только когда количсетво пробелов постоянное.
...
Рейтинг: 0 / 0
07.03.2012, 17:18
    #37695645
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Заменять два пробела на один, пока длина строки не перестанет уменьшатся, а потом split. Или регулярные выражения.
...
Рейтинг: 0 / 0
07.03.2012, 17:19
    #37695649
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Antonariy,

А как их использовать в VBA??
...
Рейтинг: 0 / 0
07.03.2012, 17:30
    #37695665
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set rx = CreateObject("vbscript.regexp")
rx.Global = True
rx.IgnoreCase = True
rx.MultiLine = True
rx.Pattern = "\d+"
Set obj = rx.Execute(sTEXT)
For Each o1 In obj
...
Рейтинг: 0 / 0
07.03.2012, 17:31
    #37695666
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
если через Split то можно так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim myColl As New Collection

For i = 0 To UBound(Split(StrTxt, " ")) - 1
    If Len(Trim(Split(StrTxt, " ")(i))) > 0 Then
        myColl.Add Trim(Split(StrTxt, " ")(i))
    End If
Next
...
Рейтинг: 0 / 0
07.03.2012, 17:31
    #37695669
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Жуть какая. Да еще с коллекцией.
...
Рейтинг: 0 / 0
07.03.2012, 17:34
    #37695670
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
For i = 0 To UBound(Split(StrTxt, " ")) [SRC vba][/SRC]
...
Рейтинг: 0 / 0
07.03.2012, 17:36
    #37695675
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Antonariy,

с комментариями каждой строки, напиши плиз..
...
Рейтинг: 0 / 0
07.03.2012, 17:37
    #37695676
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
я показал автору как можно через сплит
понятно что это ресурсно затратно а коллекция это вместо переменных
...
Рейтинг: 0 / 0
07.03.2012, 17:51
    #37695692
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
TpaBka,

а как присвоить полученные значения переменным??
...
Рейтинг: 0 / 0
07.03.2012, 17:56
    #37695701
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
через знак =
...
Рейтинг: 0 / 0
07.03.2012, 17:58
    #37695706
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Или вопрос:
как прочитать данные из колекции?
...
Рейтинг: 0 / 0
07.03.2012, 17:59
    #37695709
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
TpaBka,

именно!!
...
Рейтинг: 0 / 0
07.03.2012, 18:00
    #37695714
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
For i = 1 To myColl.Count
MsgBox myColl(i)
Next
...
Рейтинг: 0 / 0
07.03.2012, 18:33
    #37695743
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
OilboyИмеется текстовый файл содержащий столбцы с числами между которыми может быть разное количество пробелов, требуетсвя выделить числа в строке и присвоить их переменным. Сплит работает только когда количсетво пробелов постоянное.

-но столбики то просматриваются или нет
-ведь в таком то столбике инфы нет --и split не годится


Код: plaintext
1.
2.
3.
4.
5.
_________\___\_______________\_______шаблон строки, подчеркивание вместо пробела
666666666 666__________888,77 7777777
77777____ 777________12384,12 ннннннн
ллллллл__________________1,22 ллл

...
Рейтинг: 0 / 0
08.03.2012, 00:15
    #37696090
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
авторведь в таком то столбике инфы нет --и split не годится
А проверить наличие пробелов перед разбивкой религия не позволяет?
А так же каждый элемент массива на число IsNumberic?
...
Рейтинг: 0 / 0
08.03.2012, 03:11
    #37696208
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Oilboy,
если можно, пример файла выложите (строк 20-30 достаточно).
...
Рейтинг: 0 / 0
11.03.2012, 10:05
    #37698435
Oilboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
скукотища,

000000.00 000000.00 000000.00 000000.00 000033.38 000000.00 000000.00
000010.00 000000.04 000000.00 000010.00 000023.38 000000.00 000000.00
000020.00 000000.11 000000.00 000020.00 000013.38 000000.02 000000.00
000030.00 000000.11 000000.00 000030.00 000003.38 000000.04 000000.00
000040.00 000000.14 000000.00 000040.00 -00006.62 000000.06 000000.00
000050.00 000000.20 000000.00 000050.00 -00016.62 000000.09 000000.00
000060.00 000000.16 000000.00 000060.00 -00026.62 000000.12 000000.00
000070.00 000000.22 000000.00 000070.00 -00036.62 000000.15 000000.00
000080.00 000000.24 000000.00 000080.00 -00046.62 000000.19 000000.00
000090.00 000000.26 000000.00 000090.00 -00056.62 000000.24 000000.00
000100.00 000000.25 000000.00 000100.00 -00066.62 000000.28 000000.00
000110.00 000000.37 000000.00 000110.00 -00076.62 000000.33 000000.00
000120.00 000000.39 000000.00 000120.00 -00086.62 000000.40 000000.00
000130.00 000000.56 000000.00 000130.00 -00096.62 000000.48 000000.00
000140.00 000001.00 000000.00 000140.00 -00106.62 000000.62 000000.00
000150.00 000001.10 000000.00 000150.00 -00116.62 000000.80 000000.00
000160.00 000001.04 000000.00 000159.99 -00126.61 000000.99 000000.00
000170.00 000000.59 000000.00 000169.99 -00136.61 000001.13 000000.00
000180.00 000000.56 000000.00 000179.99 -00146.61 000001.23 000000.00
000190.00 000000.53 000000.00 000189.99 -00156.61 000001.33 000000.00
000200.00 000000.57 000000.00 000199.99 -00166.61 000001.42 000000.00
000210.00 000000.54 000000.00 000209.99 -00176.61 000001.52 000000.00
000220.00 000000.52 000000.00 000219.99 -00186.61 000001.61 000000.00
...
Рейтинг: 0 / 0
11.03.2012, 13:37
    #37698772
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim rx As Object
Dim s As String
Dim v() As Double
Set rx = CreateObject("VBScript.RegExp") 'New VBScript_RegExp_55. RegExp
s = "000000.00 000000.00 000000.00 000000.00 000033.38 000000.00 000000.00" & vbCrLf & _
    "000010.00 000000.04 000000.00 000010.00 -000023.38 000000.00 000000.00"
rx.Global = True
rx.Multiline = True
rx.Pattern = "-{0,1}\d+\.\d{2}"
Set m = rx.Execute(s)
ReDim v(m.Count - 1)
For x = 0 To m.Count - 1
    v(x) = Val(m(x).Value)
Next
...
Рейтинг: 0 / 0
11.03.2012, 15:52
    #37698987
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Oilboyскукотища,

000000.00 000000.00 000000.00 000000.00 000033.38 000000.00 000000.00
000010.00 000000.04 000000.00 000010.00 000023.38 000000.00 000000.00
{skipped}
1) не файл это, файл прикрепляется к сообщению.
2) где 'разное количество пробелов'?
...
Рейтинг: 0 / 0
11.03.2012, 18:44
    #37699319
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
OilboyИмеется текстовый файл содержащий столбцы с числами между которыми может быть разное количество пробелов, требуетсвя выделить числа в строке и присвоить их переменным.
Input # Statement
...
Рейтинг: 0 / 0
11.03.2012, 18:47
    #37699331
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
Применительно к фрагменту файла в сообщении:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
dim val(1 to 7, 1 to 23) as single
dim i as integer, j as integer
dim f as integer
f=freefile
open "file.txt" for input as #f
for i = 1 to 23
  for о = 1 to 7
    input #f,val(j,i)
  next j
next i
close #f
...
Рейтинг: 0 / 0
11.03.2012, 18:48
    #37699335
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсить строку из чисел
поправка
Код: vbnet
1.
  for j = 1 to 7
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсить строку из чисел / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]