Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
Я привык, что бейсик все может сделать в одну строчку:)

Оч-чень любопытны твои наработки....

Ответить

Страница: 1 |

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



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