Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: БД из TXT Добавлено: 28.06.04 17:40  

Автор вопроса:  Seregahome
Как, при считывании текстового файла (в качестве БД), перейти на новую строку?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #1 Добавлено: 28.06.04 17:50
Ну если я не ошибаюсь то
будет так только нужно пользовать listbox

Private Sub Form_Load()
    ;Dim s As String
    Open "c:\autoexec.bat" For Input As #1
    ;Do Until EOF(1)
        Line Input #1, s
        List1.AddItem s
    Loop
    Close
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Seregahome



Вопросов: 39
Ответов: 24
 Профиль | | #2 Добавлено: 28.06.04 18:36
А если дело обстоит так:

Open App.Path & "\111.txt" For Binary Access Read Lock Write As 1
    tStr = Space(LOF(1))
    Get 1, , tStr
sArr = Split(tStr, ",";)
Do Until EOF(1)
Adodc1.Recordset.AddNew
    For nf = 0 To 2
    Adodc1.Recordset.Fields(nf) = sArr(nf)
    MsgBox 2
    Next nf
Line Input #1, tStr 'здесь на этой строчке ошибка
Loop
Close 1

т.е. записи надо еще и разбивать на столбцы.

Ответить

Номер ответа: 3
Автор ответа:
 Андрей Никитин



ICQ: 325172082 

Вопросов: 3
Ответов: 81
 Профиль | | #3 Добавлено: 29.06.04 15:46
А если попробовать так:

Open App.Path & "\111.txt" For Input As #1
'Читаем весь файл
sFile = Input(FileLen(App.Path & "\111.txt";), #1)
Close #1
'Разбиваем на строки (записи)
arrStrings = Split(sFile, vbCrLf)
For i = LBound(arrStrings) To UBound(arrStrings)
  'Разбиваем каждую строку на столбцы
  arrFields = Split(arrStrings, ",";)
  Adodc1.Recordset.AddNew
  For nf = 0 To 2
    Adodc1.Recordset.Fields(nf) = arrFields(nf)
    MsgBox 2
  Next
Next

PS. А зачем открывать в бинарном режиме?

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 29.06.04 16:18
> PS. А зачем открывать в бинарном режиме?
Более полная и гибкая работа с файлами...
И это более шустрый способ, чем твой, хотя бы уже вот по этой причине:

- FileLen(App.Path & "\111.txt";)
- LOF(1)

Да и вообще, сомневаюсь что Input будет работать быстрее чем бинарный доступ...

Есть-ли смысл два раза использовать App.Path & "\111.txt"

ЗЫ
Кстати, если программа будет в корне диска, то твой путь станет таким:
"с:\\111.txt"
По той причине, что App.Path, в этом случае, вернет путь "c:\", т.е. со слэшем!

Ответить

Номер ответа: 5
Автор ответа:
 Андрей Никитин



ICQ: 325172082 

Вопросов: 3
Ответов: 81
 Профиль | | #5 Добавлено: 29.06.04 16:54
Упс... В предыдущем посте сделал ошибку...
Вместо:
arrFields = Split(arrStrings, ",";)
Надо:
arrFields = Split(arrStrings(i), ",";)

>to sne: ...справедливо... (хотя бы потому, что при чтении с исп. Input, VB делает со строкой некоторые махинации во внутреннем буфере) :) - я предложил всего лишь вариант

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 29.06.04 17:01
2Андрей, я с тобой не спорил... Ты всего-лишь спросил, я всего-лишь ответил :)
при этом я, конечно же, никоим образом, не притендую на правоту собственной точки зрения, я высказываю свои наблюдения...

Ответить

Номер ответа: 7
Автор ответа:
 Андрей Никитин



ICQ: 325172082 

Вопросов: 3
Ответов: 81
 Профиль | | #7 Добавлено: 30.06.04 09:10
>Есть-ли смысл два раза использовать App.Path & "\111.txt"

н-да... действительно протормозил :) - глянул только что свои исходники - везде использую LOF(iFileNumber), а не FileLen(...) - видно перегрелся :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам