Строки в Grid

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

Строки в Grid

Сообщение dr-vic » 24.02.2004 (Вт) 23:57

Подскажите, плиз, каким образом можно реализовать в VB помещение в любой грид содержимого текстового файла, представляющего из себя набор строк типа:
"ФИО ГодРождения значение1 значение2 значение3"
Сразу говорю, что разделение строки через Split не подходит: определенные значения могут отсутствовать. Отделение частей строки по количеству символов тоже не прокатывает - ширина столбцов заранее не определена.
Т.е. необходимо что-то подобное тому, как реализуется в Excel ->
мастер текстов -> фиксированной ширины.
Подайте хоть какую-нибудь идею, а то ничего в голову не идет!
:roll: Заранее благодарен.

Ilya Vasilyev
Постоялец
Постоялец
 
Сообщения: 820
Зарегистрирован: 06.08.2002 (Вт) 5:36
Откуда: Russia, Omsk

Сообщение Ilya Vasilyev » 25.02.2004 (Ср) 6:28

Нет ничего проще - строку формируешь отделяя значения символом табуляции, потом достаточно сделать {Grid}.Add {StringValue} и все - каждое значение встанет в свою колонку... а если значение отсутствует - ну и пусть отсутствует... будет два символа табуляции подряд... напомню - сомвол табуляции имеет код #9, т.е. Chr(9) или vbTab
Изображение
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали

dr-vic
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 13.01.2004 (Вт) 0:05

Сообщение dr-vic » 28.02.2004 (Сб) 17:38

Ilya Vasilyev: Сорри, я, наверное, не очень внятно сформулировал задачу:
строки берутся из текстового файла, но файлы создаю не я.
Можно, конечно, согнать в цикле количество пробелов-разделителей до одного. Что нибудь типа:
Do Until InStr(InputString,chr(32)+chr(32))=0
InputString=Replace(InputString,chr(32)+chr(32),chr(32))
Loop
а потом либо побить на массив:
ColumnArray=Split(InputString,chr(32))
либо просто заменить на chr(9)
InputString=Replace(InputString,chr(32),chr(9))
и потом добавить в грид. То есть, вариантов много - на любителя!
Но, я обращаю внимание - отсутсвующее значение в тексте заменено тоже на пробел! Тогда все данные в гриде "съедут" влево. В этом и загвоздка...


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList