Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2011, 14:00   #11
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Предложу и свой вариант
Пример использования
Код:
Private Sub CommandButton2_Click()
s = "00:00:00,7,845,7,3" & vbCrLf & "07:08:04,7,945,7,93"
X = M_Csv(s)
End Sub
Результат

Код:
Public Function M_Csv(ByVal s)
      Dim R, Count As Integer, ST, Count2 As Integer
     bRes = False
  Set RegExp = CreateObject("VBScript.RegExp")
    RegExp.Global = True
    RegExp.MultiLine = True
    RegExp.IgnoreCase = True
    RegExp.Pattern = "(\d){2}:(\d){2}:(\d){2}"
    bRes = RegExp.test(s)
        If bRes Then
            Set oMatches = RegExp.Execute(s)
            Count2 = oMatches.Count
               ReDim ST(1 To Count2)
            For L = 1 To Count2
            Dim X
            X = Wop(s)
              Count = UBound(X) + 1
                ReDim R(1 To Count)
              R(1) = oMatches(L - 1).Value
            For n = 1 To Count - 1
            R(n + 1) = X(n)
            Next
            ST(L) = R
            Next
            M_Csv = ST
         Exit Function
        End If
    End Function

 Public Function Wop(ByVal s)
      Dim R, Count As Integer
     bRes = False
  Set RegExp = CreateObject("VBScript.RegExp")
  RegExp.Global = True
    RegExp.MultiLine = True
    RegExp.IgnoreCase = True
    RegExp.Pattern = "(7,(\d){1,8})"
    bRes = RegExp.test(s)
        If bRes Then
            Set oMatches = RegExp.Execute(s)
              Count = oMatches.Count
            ReDim R(1 To Count)
            For n = 1 To Count
            R(n) = oMatches(n - 1).Value
            Next
              Wop = R
         Exit Function
        End If
End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.11.2011, 15:17   #12
Galbert
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 14
По умолчанию

Казанскому:
Действительно, задача сходная. Только решения я не увидел.
Hugo121:
Не хочется с макросом связываться...
Может быть можно разделителями обойтись?

Всем спасибо!
Galbert вне форума Ответить с цитированием
Старый 24.11.2011, 15:28   #13
Galbert
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 14
По умолчанию

Казанскому:
Действительно, задача сходная. Только решения я не увидел.
Hugo121:
Не хочется с макросом связываться...
Может быть можно разделителями обойтись?

Всем спасибо!
Galbert вне форума Ответить с цитированием
Старый 24.11.2011, 15:30   #14
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Не по теме
Это только у меня или настройки какие есть, но при сохранении в формате
"csv, разделитель запятые" независимо от наличия целых или десятичных чисел в файле числа всё равно разделены ";"
Откуда такой хитрый файл. Мои попытки стандартными способами сохранить в разделителями "," успехов не дали
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 24.11.2011, 15:47   #15
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Если все 7, то мой вариант:
Код:
Dim S() As String
Dim CF As String
   File = ActiveWorkbook.Path & "\45.txt"
   Open File For Binary As #1
      CF = Input(FileLen(File), 1)
      Close #1
 CF = Replace(CF, " ", "")
 CF = Replace(CF, ",7,", ";7,")
 S = Split(CF, vbNewLine)
А уже массив обработать построчно с разбивкой по ";"
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 24.11.2011, 15:54   #16
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

А вот с генерацией не соображу пока
Во влошениивнешний вид и сам файл
Изображения
Тип файла: jpg 43.jpg (34.0 Кб, 72 просмотров)
Вложения
Тип файла: rar 44.rar (6.2 Кб, 5 просмотров)
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 24.11.2011, 16:04   #17
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Вот так всё получается
Код:
Sub QWERT()
Dim S() As String
Dim CF As String
   File = ActiveWorkbook.Path & "\45.txt"
   Open File For Binary As #1
      CF = Input(FileLen(File), 1)
      Close #1
 CF = Replace(CF, " ", "")
 CF = Replace(CF, ",7,", ";7,")
File = ActiveWorkbook.Path & "\40.txt"
 Open File For Output As #1
 Print #1, CF
Close #1
End Sub
Потом открывается нормально
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 24.11.2011, 16:49   #18
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Код для ОпенОфиса:
Код:
sub Main2

dim  FileName 
FileName = "C:\45.txt"
Open FileName For Input As #1 'Открываем файл для ввода
Open "C:\40.txt" For output As #2 'Открываем файл для ввода
Do While NOT EOF(1) 'Пока НЕ достигнут конец файла
line Input #1, CF 'Чтение некоторых данных!
 CF = Replace(CF, " ", "")
 CF = Replace(CF, ",7,", ";7,")
Print #2, CF
loop
close #1
close #2
end sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как преобразовать данные и добавить их в столбцы mordvin Microsoft Office Excel 10 05.09.2011 09:40
Как преобразовать данные из столбцов? sosed Microsoft Office Excel 3 24.03.2011 11:32
Импорт данных. OpenOffice calc не дружит с VBA. как преобразовать? AAAAAAAmidi Microsoft Office Excel 3 16.08.2010 14:56
Macros -- данные из csv файла надо вставить в Excel sasha7676 Microsoft Office Excel 0 28.04.2010 19:14
Как преобразовать данные экспортированные из Excel в Delphi dimaximo Общие вопросы Delphi 0 25.04.2010 14:41