ОБРАБОТАТЬ TXT ФАЙЛ

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alex77777
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 27.09.2004 (Пн) 19:15

ОБРАБОТАТЬ TXT ФАЙЛ

Сообщение alex77777 » 16.04.2005 (Сб) 21:37

Здравствуйте!

Есть текстовый файл строка весь файл заполнен такими строками
(естест-но Ф.И.О меняется).
Как лучше обработать такую строку и вывести в Excell.


01/01/1922,111-111-111-11, ИВАНОВ, ИВАН, ИВАНОВИЧ
01/01/1922,111-111-111-11, ПЕТРОВ, ПЕТР, ПЕТРОВИЧ
...................

СПАСИБО.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.04.2005 (Сб) 22:41

alex77777
Так как в приведённом примере явно присутствует разделитель, то сам бог велел читать так же через них.
Т.е. читать каждую строку файла через разделитель.

Код: Выделить всё

Option Explicit

Private Sub Command1_Click()
Dim fNum As Integer, sFileName As String
Dim DateVar As String, StringVar As String, strLastName As String
Dim strFirstName As String, strMidleName As String

sFileName = "C:\Test.txt"
fNum = FreeFile
Open sFileName For Input As fNum
Do While Not EOF(fNum)
    Input #fNum, DateVar, StringVar, strLastName, strFirstName, strMidleName
    Debug.Print "DateVar=" & CDate(Replace(DateVar, "/", "."))
    Debug.Print "StringVar=" & StringVar
    Debug.Print "strLastName=" & strLastName
    Debug.Print "FirstName=" & strFirstName
    Debug.Print "MidleName" & strMidleName
    Debug.Print "==============================="
Loop
End Sub
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 17.04.2005 (Вс) 3:30

не ругайте за флуд, но все-же … НЕ ЛЕГЧЕ ли через БД. (ибо выше изложенный автором топика файл и есть БД, но в малость извращенном варианте)
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

alex77777
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 27.09.2004 (Пн) 19:15

Сообщение alex77777 » 17.04.2005 (Вс) 8:37

Спасибо за ответ. Но мне нужно все данные ВЫВЕСТИ в EXCELL.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2005 (Вс) 9:31

Файл - Открыть - Текстовый файл. Появляется мастер импортирования.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alex77777
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 27.09.2004 (Пн) 19:15

Сообщение alex77777 » 17.04.2005 (Вс) 17:08

:D GSerg спасибо это я знаю. Просто задача так не стоит.
Нужно обработать файл, и занести в Excell. Всё.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.04.2005 (Вс) 17:25

Код: Выделить всё
Private Sub Command1_Click()
  Dim i As Long, f As Integer, v As Variant
 
  With CreateObject("excel.application")
    With .workbooks.Add.worksheets(1)
      f = FreeFile
      Open "c:\file.txt" For Input Access Read As #f
      Do Until EOF(f)
        Line Input #f, v
        If Len(v) Then
          i = i + 1
          v = Split(v, ",")
          .range(.cells(i, 1), .cells(i, UBound(v) - LBound(v) + 1)).Value = v
        End If
      Loop
      Close #f
      .usedrange.Columns.autofit
    End With
    .Visible = True
  End With
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alex77777
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 27.09.2004 (Пн) 19:15

Сообщение alex77777 » 20.04.2005 (Ср) 18:12

GSerg Огромное спасибо за помощь.
Помогите если можно, а можно НЕ СОЗДАВАТЬ НОВЫЙ РАБ.ЛИСТ
А ЗАНЕСТИ ДАННЫЕ СРАЗУ В ЯЧЕЙКУ А11. БУДУ ОЧЕНЬ ВАМ ПРИЗНАТЕЛЕН.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.04.2005 (Чт) 5:29

Самому не догадаться?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alex77777
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 27.09.2004 (Пн) 19:15

Сообщение alex77777 » 21.04.2005 (Чт) 17:57

я пытаюсь но не получается :oops:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 21.04.2005 (Чт) 18:37

Покопайся в MSDN - DOM. Надо заменить
Код: Выделить всё
.workbooks.Add.worksheets(1)

на что-то вроде
Код: Выделить всё
.activeworkbook.worksheets(1)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 74

    TopList