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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 08:42   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию Работа с текстовым файлом(.txt) в VBA

Здравствуйте уважаемые форумчане нужна помощь вот в каком вопросе,
есть текстовый файл(я его прикрепил к данному сообщению) с длинной строкой,вот к примеру:
01 0.00 0.00 0.00 0.00 0.00 0.00 02 47500.00 2000000.00 47500.00 -5655.00 0.00 5655.00 03....
необходимо считать каждое число потом брать первое число таковым является 0.00 и в цикле его сравнить с нулем,в случае если это число больше нуля,допустим оно равно 47500.00 тогда записывать эту строку целиком в ячейки экселя,если же это число меньше нуля тогда пропускаем эту строку и такой цикл должен пройти 12 раз и все ненулевые числа которые он найдет он должен последовательно записать в ячейки.Думаю изложение задачи объяснено читабельно)первое число идет месяц таковыми являются (01,02).
Значимость от числа до числа составляет 11 символов,если таковых нету,то эти символы впереди дополняются пробелами.
По сути вот строка:
01 0.00(это число нужно сравнивать) 0.00 0.00 0.00 0.00 0.00 02 47500.00(это число нужно сравнивать) 2000000.00 47500.00 -5655.00 0.00 5655.00 03...
Мне нужно брать первое число после каждого месяца и сравнивать его с нулем,но заковыристость еще в том что нужно сравнивать:
1) 0.00>0 в этом случае ничего,ищется в цикле другое число большее 0
2)47500.00>0 в этом случае записывается строка целиком,и дальше ищется следующее число,а строка должна записаться вот в каком виде:
47500.00 2000000.00 47500.00 -5655.00 0.00 5655.00
Помогите пожалуйста с такой задачей,заранее благодарю за потраченное время,сам я не совсем могу до такого сообразить,поэтому и обратился за помощью к вам уважаемые программисты)
Вложения
Тип файла: txt 1.txt (1,006 байт, 160 просмотров)

Последний раз редактировалось manula; 13.03.2012 в 08:53.
manula вне форума Ответить с цитированием
Старый 13.03.2012, 09:05   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

похоже 13 строк загнали в одну
Код:
104304543103311280220121520                5024МАНИКЕЕВ Ф А      001 2000000.00         
01       0.00       0.00       0.00       0.00       0.00       0.00         
02   47500.00 2000000.00   47500.00   -5655.00       0.00    5655.00         
03       0.00 1952500.00       0.00       0.00       0.00       0.00         
04       0.00       0.00       0.00       0.00       0.00       0.00         
05       0.00       0.00       0.00       0.00       0.00       0.00         
06       0.00       0.00       0.00       0.00       0.00       0.00         
07       0.00       0.00       0.00       0.00       0.00       0.00         
08       0.00       0.00       0.00       0.00       0.00       0.00         
09       0.00       0.00       0.00       0.00       0.00       0.00         
10       0.00       0.00       0.00       0.00       0.00       0.00         
11       0.00       0.00       0.00       0.00       0.00       0.00         
12       0.00       0.00       0.00       0.00       0.00       0.00
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 13.03.2012, 11:17   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Да вот что-то на подобие такого мне нужно получить,только естественно где 2 число после месяца больше нуля.
manula вне форума Ответить с цитированием
Старый 13.03.2012, 12:03   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

то есть строки
Код:
104304543103311280220121520                5024МАНИКЕЕВ Ф А      001 2000000.00         
02   47500.00 2000000.00   47500.00   -5655.00       0.00    5655.00
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 13.03.2012, 21:01   #5
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Самый примитивный способ - открыть как тектовик
Код:
Option Explicit

Private Sub Комманда1_Click()
Dim M() As String
Dim R, C, k

   Dim File As String, CF As String
   File = "c:\1.txt"
   Open File For Binary As #1
      CF = Input(FileLen(File), 1)
   Close #1
   
   Do While InStr(1, CF, "  ") > 0
        CF = Replace(CF, "  ", " ")
   Loop
   
Cells.ClearContents

   M = Split(CF, " ")
   
   For R = 7 To UBound(M) - 8 Step 7
        If Val(M(R)) > 0 Then
             k = k + 1
             For C = 1 To 8
                  Cells(k, C) = M(R + C - 1)
             Next C
        End If
   Next R
   
   End Sub
Но это при небольших объёмах файлов.
Если файл огромный нужны другие методы
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 16.03.2012, 11:55   #6
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Благодарю за помощь,а возможен еще какой нибудь вариант так же при помощи текстовика?
manula вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа текстовым файлом erorai 1990 Помощь студентам 2 11.02.2012 22:09
Работа с текстовым файлом lavnikov1 Помощь студентам 2 29.06.2011 20:29
Работа с текстовым файлом bles Паскаль, Turbo Pascal, PascalABC.NET 3 18.04.2010 01:09
работа с текстовым файлом cowboy Общие вопросы Delphi 1 02.08.2009 11:14
Работа с текстовым файлом GazimagomedovM Помощь студентам 12 17.07.2008 18:24