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

А как их использовать в VBA??
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #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
Парсить строку из чисел
    #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
Парсить строку из чисел
    #37695669
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жуть какая. Да еще с коллекцией.
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #37695670
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For i = 0 To UBound(Split(StrTxt, " ")) [SRC vba][/SRC]
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #37695675
Oilboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

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

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

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

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


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

...
Рейтинг: 0 / 0
Парсить строку из чисел
    #37696090
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторведь в таком то столбике инфы нет --и split не годится
А проверить наличие пробелов перед разбивкой религия не позволяет?
А так же каждый элемент массива на число IsNumberic?
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #37696208
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oilboy,
если можно, пример файла выложите (строк 20-30 достаточно).
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #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
Парсить строку из чисел
    #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
Парсить строку из чисел
    #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
Парсить строку из чисел
    #37699319
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OilboyИмеется текстовый файл содержащий столбцы с числами между которыми может быть разное количество пробелов, требуетсвя выделить числа в строке и присвоить их переменным.
Input # Statement
...
Рейтинг: 0 / 0
Парсить строку из чисел
    #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
Парсить строку из чисел
    #37699335
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправка
Код: vbnet
1.
  for j = 1 to 7
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсить строку из чисел
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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