Отображение данных из тхт

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

Отображение данных из тхт

Сообщение Riter » 17.12.2004 (Пт) 11:33

Проблема в том, что после где то 12тыс строки пишет Out of memory. И долго грузится.

Dim sFileName As String
Dim sRow As String
sFileName = App.Path & "\WEBEXTD20041216.txt"
MSFlexGrid1.Cols = 27
Open sFileName For Input As #1
Do Until EOF(1)
Line Input #1, sRow
MSFlexGrid1.AddItem sRow
Loop
Close #1

Если я делаю через ado то в некоторых столбцах MSFlexGrid данные выводятся в один столбец несколько столбцов текстовово файла,
:( з за чего это происходит?

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 16:55

Вообщето я хочу получить типа excel таблицы с фильтром.
Кто что может посоветовать?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.12.2004 (Пт) 16:57

а что тебе мешает заюзать ADO и обычный DataGrid для этого

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 17:47

Проблема в том что у меня почему то в один столбец DataGrid помещается несколько столбцов из текста, и как с этим бороться я незнаю. И как можно поместить туда сразу несколько файлов?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.12.2004 (Пт) 17:54

приведи код как ты делаешь отображение своего текстового файла в гриде

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 18:11

Если бы я знал какой код писать то может у меня бы все и заработало бы. :lol: Кстатии в текстовом файле столбцы разделдены таб.
Последний раз редактировалось Riter 17.12.2004 (Пт) 18:12, всего редактировалось 1 раз.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.12.2004 (Пт) 18:12

Ты же пишешь:
Проблема в том что у меня почему то в один столбец DataGrid помещается несколько столбцов из текста, и как с этим бороться я незнаю.


Вот я и спрашиваю - как ты это получил, приведи код.

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 18:19

Я кодом не пользовался. Вытянул Adodc1 в констр. создал соединение, связал MSHFlexGrid1 с Adodc1 и на этом пои познания vb закончились. В итоге получилось некоторые столбцы в нормальном виде, а некоторые в одном столбце получилось 2 и больше разделенных ||.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.12.2004 (Пт) 18:32

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

'GRD - это DataGrid (Microsoft DataGrid Control 6.0 (SP6) (OLE DB) )
'sPath  - это директория, где твои файлики текстовые лежат
'там же нужно создать файлик SCHEMA.INI примерно с таким содержимым (разделитель Запятая)
'[Имя твоего файла.txt]
'ColNameHeader=True
'Format=CSVDelimited
'CharacterSet=ANSI
'MaxScanRows=0
'
            s = VBA.Left$(s, Len(s) - 1)
            ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=5;Extensions=txt;" & _
                    "DBQ=" & sPath & ";DefaultDir=" & sPath  & ";"

    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.CommandTimeout = 20
    cn.ConnectionTimeout = 30
    cn.Open ConnectionString

    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    Set rs.ActiveConnection = cn

     SQL = "SELECT * FROM [Имя твоего файла#txt]"
     rs.Open SQL, , adOpenStatic, adLockReadOnly, adCmdText

     Set GRD.DataSource = rs


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.12.2004 (Пт) 18:35

писал быстро, возможны ошибки, так что разбирайся с основной идеей

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 18:38

А что делать если разделитель табуляция?

Riter
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 24.07.2004 (Сб) 17:56

Сообщение Riter » 17.12.2004 (Пт) 19:09

Непонятно следующее

'там же нужно создать файлик SCHEMA.INI примерно с таким содержимым (разделитель Запятая)

s = VBA.Left$(s, Len(s) - 1) с этой строкой неработает

Если ее убрать то получается что в одном столбце отображаются все столбцы разделенные| (при разделители ,)

при разделители tab то некоторые нормально, а некоторые нет.

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 18.12.2004 (Сб) 9:48

Код: Выделить всё
sLine = VBA.Replace(sLine, "|", vbTab)
Me.mshfGRID.AddItem sLine


Как раз табуляцией разделено и должно быть.


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

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

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 20

    TopList