Страница: 1 |
Страница: 1 |
Вопрос: Как сохранить данные из MSflexgrid?
Добавлено: 21.05.07 17:27
Автор вопроса: WFS
Нужно просто сохранить в текстовый файл данные из msflexgrid, чтоб все столбцы были ровно.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 21.05.07 17:52
В цикле опроси сетку (TextMatrix), дополни пробелами до нужного максимума. А в чем затруднение?
Номер ответа: 2
Автор ответа:
WFS
Вопросов: 12
Ответов: 19
Профиль | | #2
Добавлено: 21.05.07 18:08
Ну просто может можно автоматически. Ведь если длины разные у элементов в сетке(я их заранее не знаю), то тогда строки будут неровно. Может можно как нибудь тогда в эксель скопировать, а потом уже из экселя сохранить? Тогда все должно быть ровно
Номер ответа: 3
Автор ответа:
WFS
Вопросов: 12
Ответов: 19
Профиль | | #3
Добавлено: 21.05.07 18:09
могут быть неровно не строки, а столбцы (опечатка)
Номер ответа: 4
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #4
Добавлено: 21.05.07 18:22
А программирование это и есть автоматизация труда, но пользователя, а не программера.
В чем проблема узнать длину строки
Len(TextMatrix(x,y))?
Выкинуть в Excel - не проблема, 20 постов назад описано.
Номер ответа: 5
Автор ответа:
WFS
Вопросов: 12
Ответов: 19
Профиль | | #5
Добавлено: 21.05.07 18:25
Ну просто это геморно в зависимости от длины строки выбирать число пробелов.
Я привык, что бейсик все может сделать в одну строчку
Номер ответа: 6
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #6
Добавлено: 21.05.07 18:39
минут десять ушло на такую х.
Dim x As Integer, y As Integer, maxln As Integer, tmpln As Integer
Dim arr() As Variant
For x = 0 To MSHFlexGrid1.Rows - 1
For y = 0 To MSHFlexGrid1.Cols - 1
tmpln = Len(MSHFlexGrid1.TextMatrix(x, y))
If tmpln > maxln Then maxln = tmpln
Next
Next
ReDim arr(MSHFlexGrid1.Rows - 1, MSHFlexGrid1.Cols - 1)
'maxln - длина максимальной строки
For x = 0 To MSHFlexGrid1.Rows - 1
For y = 0 To MSHFlexGrid1.Cols - 1
tmpln = Len(MSHFlexGrid1.TextMatrix(x, y))
arr(x, y) = MSHFlexGrid1.TextMatrix(x, y) & String(maxln - tmpln, " "
Next
Next
' проверка
Dim sbor As String
For x = 0 To MSHFlexGrid1.Rows - 1
For y = 0 To MSHFlexGrid1.Cols - 1
sbor = sbor & arr(x, y) & "|"
Next
sbor = sbor & vbCrLf
Next
Debug.Print sbor
Номер ответа: 7
Автор ответа:
WFS
Вопросов: 12
Ответов: 19
Профиль | | #7
Добавлено: 21.05.07 19:10
Ну я бы тоже мог это написать, просто думал, может в одну строчку как нить получится.
Номер ответа: 8
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #8
Добавлено: 21.05.07 19:39
поставь после каждой строки кода двоеточие:
put point yourself.
Номер ответа: 9
Автор ответа:
WFS
Вопросов: 12
Ответов: 19
Профиль | | #9
Добавлено: 21.05.07 20:42
Че то не совсем понял прикол, но все равно спасибо!
Номер ответа: 10
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #10
Добавлено: 21.05.07 23:18
Оч-чень любопытны твои наработки....